/export/starexec/sandbox2/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- KILLED proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 222 ms] (4) CpxRelTRS (5) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 3 ms] (6) TRS for Loop Detection (7) RenamingProof [BOTH BOUNDS(ID, ID), 1 ms] (8) CpxRelTRS (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) typed CpxTrs (11) OrderProof [LOWER BOUND(ID), 0 ms] (12) typed CpxTrs (13) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (14) CpxTRS (15) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (16) CpxRelTRS (17) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxWeightedTrs (19) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxTypedWeightedTrs (21) CompletionProof [UPPER BOUND(ID), 0 ms] (22) CpxTypedWeightedCompleteTrs (23) NarrowingProof [BOTH BOUNDS(ID, ID), 137 ms] (24) CpxTypedWeightedCompleteTrs (25) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 26 ms] (26) CpxRNTS (27) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (28) CpxRNTS (29) CompletionProof [UPPER BOUND(ID), 0 ms] (30) CpxTypedWeightedCompleteTrs (31) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (32) CpxRNTS (33) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (34) CdtProblem (35) CdtLeafRemovalProof [ComplexityIfPolyImplication, 1 ms] (36) CdtProblem (37) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CdtProblem (41) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (42) CdtProblem (43) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 6 ms] (44) CdtProblem (45) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 132 ms] (46) CdtProblem (47) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 87 ms] (48) CdtProblem (49) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 94 ms] (50) CdtProblem (51) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 46 ms] (52) CdtProblem (53) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 118 ms] (62) CdtProblem (63) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 190 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 86 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 45 ms] (70) CdtProblem (71) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 65 ms] (82) CdtProblem (83) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 1 ms] (86) CdtProblem (87) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 9 ms] (88) CdtProblem (89) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 11 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 22 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 58 ms] (94) CdtProblem (95) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 63 ms] (100) CdtProblem (101) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 36 ms] (106) CdtProblem (107) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 10 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 11 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 9 ms] (112) CdtProblem (113) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 12 ms] (114) CdtProblem (115) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 50 ms] (118) CdtProblem (119) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 20 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 29 ms] (124) CdtProblem (125) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 2 ms] (126) CdtProblem (127) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 62 ms] (130) CdtProblem (131) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem (137) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 14 ms] (138) CdtProblem (139) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (142) CdtProblem (143) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 12 ms] (144) CdtProblem (145) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 8 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 70 ms] (148) CdtProblem (149) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 50 ms] (154) CdtProblem (155) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 18 ms] (156) CdtProblem (157) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 75 ms] (160) CdtProblem (161) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (164) CdtProblem (165) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 18 ms] (166) CdtProblem (167) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (168) CdtProblem (169) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 20 ms] (170) CdtProblem (171) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 45 ms] (172) CdtProblem (173) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 27 ms] (174) CdtProblem (175) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 107 ms] (176) CdtProblem (177) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 33 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 81 ms] (180) CdtProblem (181) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (184) CdtProblem (185) CdtLeafRemovalProof [ComplexityIfPolyImplication, 18 ms] (186) CdtProblem (187) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 29 ms] (188) CdtProblem (189) CdtLeafRemovalProof [ComplexityIfPolyImplication, 1 ms] (190) CdtProblem (191) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (192) CdtProblem (193) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (194) CdtProblem (195) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 28 ms] (196) CdtProblem (197) CdtLeafRemovalProof [ComplexityIfPolyImplication, 19 ms] (198) CdtProblem (199) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 46 ms] (200) CdtProblem (201) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (202) CdtProblem (203) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 31 ms] (204) CdtProblem (205) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (206) CdtProblem (207) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (208) CdtProblem (209) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (210) CdtProblem (211) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 20 ms] (212) CdtProblem (213) CdtLeafRemovalProof [ComplexityIfPolyImplication, 9 ms] (214) CdtProblem (215) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (216) CdtProblem (217) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (218) CdtProblem (219) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16 ms] (220) CdtProblem (221) CdtLeafRemovalProof [ComplexityIfPolyImplication, 4 ms] (222) CdtProblem (223) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 56 ms] (224) CdtProblem (225) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (226) CdtProblem (227) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 20 ms] (228) CdtProblem (229) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (230) CdtProblem (231) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 22 ms] (232) CdtProblem (233) CdtLeafRemovalProof [ComplexityIfPolyImplication, 24 ms] (234) CdtProblem (235) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 36 ms] (236) CdtProblem (237) CdtLeafRemovalProof [ComplexityIfPolyImplication, 26 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), 4 ms] (248) CdtProblem (249) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (250) CdtProblem ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) The (relative) TRS S consists of the following rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) The (relative) TRS S consists of the following rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (6) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) The (relative) TRS S consists of the following rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 Rewrite Strategy: INNERMOST ---------------------------------------- (7) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0'), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1'))), 0') The (relative) TRS S consists of the following rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0') -> 0' encArg(1') -> 1' encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0' encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1' Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: Innermost TRS: Rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0'), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1'))), 0') encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0') -> 0' encArg(1') -> 1' encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0' encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1' Types: app :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length apply :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length id :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length uncurry :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length swap :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length compose :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length const :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length listify :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length nil :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length fold :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length sum :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length add :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length 0' :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length append :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length reverse :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length length :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length 1' :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encArg :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_app :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_append :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_reverse :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_length :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_app :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_apply :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_id :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_uncurry :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_swap :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_compose :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_const :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_listify :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_cons :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_nil :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_fold :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_sum :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_add :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_0 :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_append :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_reverse :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_length :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_1 :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length hole_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length1_4 :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length gen_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length2_4 :: Nat -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length ---------------------------------------- (11) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: app, encArg They will be analysed ascendingly in the following order: app < encArg ---------------------------------------- (12) Obligation: Innermost TRS: Rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0'), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1'))), 0') encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0') -> 0' encArg(1') -> 1' encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0' encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1' Types: app :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length apply :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length id :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length uncurry :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length swap :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length compose :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length const :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length listify :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length nil :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length fold :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length sum :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length add :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length 0' :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length append :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length reverse :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length length :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length 1' :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encArg :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_app :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_append :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_reverse :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length cons_length :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_app :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_apply :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_id :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_uncurry :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_swap :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_compose :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_const :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_listify :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_cons :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_nil :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_fold :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_sum :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_add :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_0 :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_append :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_reverse :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_length :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length encode_1 :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length hole_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length1_4 :: apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length gen_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length2_4 :: Nat -> apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length Generator Equations: gen_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length2_4(0) <=> apply gen_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length2_4(+(x, 1)) <=> cons_app(apply, gen_apply:id:uncurry:swap:compose:const:listify:cons:nil:fold:sum:add:0':1':cons_app:cons_append:cons_reverse:cons_length2_4(x)) The following defined symbols remain to be analysed: app, encArg They will be analysed ascendingly in the following order: app < encArg ---------------------------------------- (13) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (14) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(app(apply, f_1), x) -> app(f_1, x) app(id, x) -> x app(app(app(uncurry, f_2), x), y) -> app(app(f_2, x), y) app(app(app(swap, f_2), y), x) -> app(app(f_2, x), y) app(app(app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(app(const, x), y) -> x app(listify, x) -> app(app(cons, x), nil) app(app(app(app(fold, f_3), g_2), x), nil) -> x app(app(app(app(fold, f_3), g_2), x), app(app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(sum, l) -> app(app(app(app(fold, add), id), 0), l) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (15) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (16) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(id, x) -> x app(listify, x) -> app(app(cons, x), nil) app(sum, l) -> app(app(app(app(fold, add), id), 0), l) append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) app(c_app(uncurry, c_app(c_app(fold, cons), id)), nil) -> id app(c_app(c_app(c_app(fold, f_3), g_2), x), nil) -> x app(c_app(const, x), y) -> x app(c_app(c_app(c_app(fold, f_3), g_2), x), c_app(c_app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) app(c_app(apply, f_1), x) -> app(f_1, x) app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) app(c_app(c_app(swap, f_2), y), x) -> app(app(f_2, x), y) app(c_app(c_app(uncurry, f_2), x), y) -> app(app(f_2, x), y) The (relative) TRS S consists of the following rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 app(x0, x1) -> c_app(x0, x1) Rewrite Strategy: INNERMOST ---------------------------------------- (17) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (18) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: app(id, x) -> x [1] app(listify, x) -> app(app(cons, x), nil) [1] app(sum, l) -> app(app(app(app(fold, add), id), 0), l) [1] append -> app(app(compose, app(app(swap, fold), cons)), id) [1] reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) [1] length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) [1] app(c_app(uncurry, c_app(c_app(fold, cons), id)), nil) -> id [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), nil) -> x [1] app(c_app(const, x), y) -> x [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), c_app(c_app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) [1] app(c_app(apply, f_1), x) -> app(f_1, x) [1] app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) [1] app(c_app(c_app(swap, f_2), y), x) -> app(app(f_2, x), y) [1] app(c_app(c_app(uncurry, f_2), x), y) -> app(app(f_2, x), y) [1] encArg(apply) -> apply [0] encArg(id) -> id [0] encArg(uncurry) -> uncurry [0] encArg(swap) -> swap [0] encArg(compose) -> compose [0] encArg(const) -> const [0] encArg(listify) -> listify [0] encArg(cons) -> cons [0] encArg(nil) -> nil [0] encArg(fold) -> fold [0] encArg(sum) -> sum [0] encArg(add) -> add [0] encArg(0) -> 0 [0] encArg(1) -> 1 [0] encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) [0] encArg(cons_append) -> append [0] encArg(cons_reverse) -> reverse [0] encArg(cons_length) -> length [0] encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) [0] encode_apply -> apply [0] encode_id -> id [0] encode_uncurry -> uncurry [0] encode_swap -> swap [0] encode_compose -> compose [0] encode_const -> const [0] encode_listify -> listify [0] encode_cons -> cons [0] encode_nil -> nil [0] encode_fold -> fold [0] encode_sum -> sum [0] encode_add -> add [0] encode_0 -> 0 [0] encode_append -> append [0] encode_reverse -> reverse [0] encode_length -> length [0] encode_1 -> 1 [0] app(x0, x1) -> c_app(x0, x1) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (19) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (20) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: app(id, x) -> x [1] app(listify, x) -> app(app(cons, x), nil) [1] app(sum, l) -> app(app(app(app(fold, add), id), 0), l) [1] append -> app(app(compose, app(app(swap, fold), cons)), id) [1] reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) [1] length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) [1] app(c_app(uncurry, c_app(c_app(fold, cons), id)), nil) -> id [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), nil) -> x [1] app(c_app(const, x), y) -> x [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), c_app(c_app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) [1] app(c_app(apply, f_1), x) -> app(f_1, x) [1] app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) [1] app(c_app(c_app(swap, f_2), y), x) -> app(app(f_2, x), y) [1] app(c_app(c_app(uncurry, f_2), x), y) -> app(app(f_2, x), y) [1] encArg(apply) -> apply [0] encArg(id) -> id [0] encArg(uncurry) -> uncurry [0] encArg(swap) -> swap [0] encArg(compose) -> compose [0] encArg(const) -> const [0] encArg(listify) -> listify [0] encArg(cons) -> cons [0] encArg(nil) -> nil [0] encArg(fold) -> fold [0] encArg(sum) -> sum [0] encArg(add) -> add [0] encArg(0) -> 0 [0] encArg(1) -> 1 [0] encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) [0] encArg(cons_append) -> append [0] encArg(cons_reverse) -> reverse [0] encArg(cons_length) -> length [0] encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) [0] encode_apply -> apply [0] encode_id -> id [0] encode_uncurry -> uncurry [0] encode_swap -> swap [0] encode_compose -> compose [0] encode_const -> const [0] encode_listify -> listify [0] encode_cons -> cons [0] encode_nil -> nil [0] encode_fold -> fold [0] encode_sum -> sum [0] encode_add -> add [0] encode_0 -> 0 [0] encode_append -> append [0] encode_reverse -> reverse [0] encode_length -> length [0] encode_1 -> 1 [0] app(x0, x1) -> c_app(x0, x1) [0] The TRS has the following type information: app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length 0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length 1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length c_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length cons_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length cons_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length cons_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length cons_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length Rewrite Strategy: INNERMOST ---------------------------------------- (21) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: append reverse length encArg_1 encode_app_2 encode_apply encode_id encode_uncurry encode_swap encode_compose encode_const encode_listify encode_cons encode_nil encode_fold encode_sum encode_add encode_0 encode_append encode_reverse encode_length encode_1 app_2 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_app(v0, v1) -> null_encode_app [0] encode_apply -> null_encode_apply [0] encode_id -> null_encode_id [0] encode_uncurry -> null_encode_uncurry [0] encode_swap -> null_encode_swap [0] encode_compose -> null_encode_compose [0] encode_const -> null_encode_const [0] encode_listify -> null_encode_listify [0] encode_cons -> null_encode_cons [0] encode_nil -> null_encode_nil [0] encode_fold -> null_encode_fold [0] encode_sum -> null_encode_sum [0] encode_add -> null_encode_add [0] encode_0 -> null_encode_0 [0] encode_append -> null_encode_append [0] encode_reverse -> null_encode_reverse [0] encode_length -> null_encode_length [0] encode_1 -> null_encode_1 [0] app(v0, v1) -> null_app [0] And the following fresh constants: null_encArg, null_encode_app, null_encode_apply, null_encode_id, null_encode_uncurry, null_encode_swap, null_encode_compose, null_encode_const, null_encode_listify, null_encode_cons, null_encode_nil, null_encode_fold, null_encode_sum, null_encode_add, null_encode_0, null_encode_append, null_encode_reverse, null_encode_length, null_encode_1, null_app ---------------------------------------- (22) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: app(id, x) -> x [1] app(listify, x) -> app(app(cons, x), nil) [1] app(sum, l) -> app(app(app(app(fold, add), id), 0), l) [1] append -> app(app(compose, app(app(swap, fold), cons)), id) [1] reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) [1] length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) [1] app(c_app(uncurry, c_app(c_app(fold, cons), id)), nil) -> id [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), nil) -> x [1] app(c_app(const, x), y) -> x [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), c_app(c_app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) [1] app(c_app(apply, f_1), x) -> app(f_1, x) [1] app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) [1] app(c_app(c_app(swap, f_2), y), x) -> app(app(f_2, x), y) [1] app(c_app(c_app(uncurry, f_2), x), y) -> app(app(f_2, x), y) [1] encArg(apply) -> apply [0] encArg(id) -> id [0] encArg(uncurry) -> uncurry [0] encArg(swap) -> swap [0] encArg(compose) -> compose [0] encArg(const) -> const [0] encArg(listify) -> listify [0] encArg(cons) -> cons [0] encArg(nil) -> nil [0] encArg(fold) -> fold [0] encArg(sum) -> sum [0] encArg(add) -> add [0] encArg(0) -> 0 [0] encArg(1) -> 1 [0] encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) [0] encArg(cons_append) -> append [0] encArg(cons_reverse) -> reverse [0] encArg(cons_length) -> length [0] encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) [0] encode_apply -> apply [0] encode_id -> id [0] encode_uncurry -> uncurry [0] encode_swap -> swap [0] encode_compose -> compose [0] encode_const -> const [0] encode_listify -> listify [0] encode_cons -> cons [0] encode_nil -> nil [0] encode_fold -> fold [0] encode_sum -> sum [0] encode_add -> add [0] encode_0 -> 0 [0] encode_append -> append [0] encode_reverse -> reverse [0] encode_length -> length [0] encode_1 -> 1 [0] app(x0, x1) -> c_app(x0, x1) [0] encArg(v0) -> null_encArg [0] encode_app(v0, v1) -> null_encode_app [0] encode_apply -> null_encode_apply [0] encode_id -> null_encode_id [0] encode_uncurry -> null_encode_uncurry [0] encode_swap -> null_encode_swap [0] encode_compose -> null_encode_compose [0] encode_const -> null_encode_const [0] encode_listify -> null_encode_listify [0] encode_cons -> null_encode_cons [0] encode_nil -> null_encode_nil [0] encode_fold -> null_encode_fold [0] encode_sum -> null_encode_sum [0] encode_add -> null_encode_add [0] encode_0 -> null_encode_0 [0] encode_append -> null_encode_append [0] encode_reverse -> null_encode_reverse [0] encode_length -> null_encode_length [0] encode_1 -> null_encode_1 [0] app(v0, v1) -> null_app [0] The TRS has the following type information: app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app 0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app 1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app c_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app Rewrite Strategy: INNERMOST ---------------------------------------- (23) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (24) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: app(id, x) -> x [1] app(listify, x) -> app(c_app(cons, x), nil) [1] app(listify, x) -> app(null_app, nil) [1] app(sum, l) -> app(app(app(c_app(fold, add), id), 0), l) [1] app(sum, l) -> app(app(app(null_app, id), 0), l) [1] append -> app(app(compose, app(c_app(swap, fold), cons)), id) [1] append -> app(app(compose, app(null_app, cons)), id) [1] reverse -> app(app(uncurry, app(app(fold, app(swap, app(app(compose, app(app(swap, fold), cons)), id))), listify)), nil) [2] length -> app(app(uncurry, app(c_app(fold, add), c_app(cons, 1))), 0) [1] length -> app(app(uncurry, app(c_app(fold, add), null_app)), 0) [1] length -> app(app(uncurry, app(null_app, c_app(cons, 1))), 0) [1] length -> app(app(uncurry, app(null_app, null_app)), 0) [1] app(c_app(uncurry, c_app(c_app(fold, cons), id)), nil) -> id [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), nil) -> x [1] app(c_app(const, x), y) -> x [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), c_app(c_app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) [1] app(c_app(apply, f_1), x) -> app(f_1, x) [1] app(c_app(c_app(compose, g_1), id), x) -> app(g_1, x) [2] app(c_app(c_app(compose, g_1), listify), x) -> app(g_1, app(app(cons, x), nil)) [2] app(c_app(c_app(compose, g_1), sum), x) -> app(g_1, app(app(app(app(fold, add), id), 0), x)) [2] app(c_app(c_app(compose, g_1), c_app(uncurry, c_app(c_app(fold, cons), id))), nil) -> app(g_1, id) [2] app(c_app(c_app(compose, g_1), c_app(c_app(c_app(fold, f_31), g_21), x4)), nil) -> app(g_1, x4) [2] app(c_app(c_app(compose, g_1), c_app(const, x5)), x) -> app(g_1, x5) [2] app(c_app(c_app(compose, g_1), c_app(c_app(c_app(fold, f_32), g_22), x6)), c_app(c_app(cons, z''), t'')) -> app(g_1, app(app(f_32, app(g_22, z'')), app(app(app(app(fold, f_32), g_22), x6), t''))) [2] app(c_app(c_app(compose, g_1), c_app(apply, f_11)), x) -> app(g_1, app(f_11, x)) [2] app(c_app(c_app(compose, g_1), c_app(c_app(compose, g_1''), f_12)), x) -> app(g_1, app(g_1'', app(f_12, x))) [2] app(c_app(c_app(compose, g_1), c_app(c_app(swap, f_21), y'')), x) -> app(g_1, app(app(f_21, x), y'')) [2] app(c_app(c_app(compose, g_1), c_app(c_app(uncurry, f_22), x7)), x) -> app(g_1, app(app(f_22, x7), x)) [2] app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, c_app(f_1, x)) [1] app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, null_app) [1] app(c_app(c_app(swap, id), y), x) -> app(x, y) [2] app(c_app(c_app(swap, listify), y), x) -> app(app(app(cons, x), nil), y) [2] app(c_app(c_app(swap, sum), y), x) -> app(app(app(app(app(fold, add), id), 0), x), y) [2] app(c_app(c_app(swap, c_app(uncurry, c_app(c_app(fold, cons), id))), y), nil) -> app(id, y) [2] app(c_app(c_app(swap, c_app(c_app(c_app(fold, f_33), g_23), x8)), y), nil) -> app(x8, y) [2] app(c_app(c_app(swap, c_app(const, x9)), y), x) -> app(x9, y) [2] app(c_app(c_app(swap, c_app(c_app(c_app(fold, f_34), g_24), x10)), y), c_app(c_app(cons, z1), t1)) -> app(app(app(f_34, app(g_24, z1)), app(app(app(app(fold, f_34), g_24), x10), t1)), y) [2] app(c_app(c_app(swap, c_app(apply, f_13)), y), x) -> app(app(f_13, x), y) [2] app(c_app(c_app(swap, c_app(c_app(compose, g_11), f_14)), y), x) -> app(app(g_11, app(f_14, x)), y) [2] app(c_app(c_app(swap, c_app(c_app(swap, f_23), y1)), y), x) -> app(app(app(f_23, x), y1), y) [2] app(c_app(c_app(swap, c_app(c_app(uncurry, f_24), x11)), y), x) -> app(app(app(f_24, x11), x), y) [2] app(c_app(c_app(swap, f_2), y), x) -> app(c_app(f_2, x), y) [1] app(c_app(c_app(swap, f_2), y), x) -> app(null_app, y) [1] app(c_app(c_app(uncurry, id), x), y) -> app(x, y) [2] app(c_app(c_app(uncurry, listify), x), y) -> app(app(app(cons, x), nil), y) [2] app(c_app(c_app(uncurry, sum), x), y) -> app(app(app(app(app(fold, add), id), 0), x), y) [2] app(c_app(c_app(uncurry, c_app(uncurry, c_app(c_app(fold, cons), id))), nil), y) -> app(id, y) [2] app(c_app(c_app(uncurry, c_app(c_app(c_app(fold, f_35), g_25), x12)), nil), y) -> app(x12, y) [2] app(c_app(c_app(uncurry, c_app(const, x13)), x), y) -> app(x13, y) [2] app(c_app(c_app(uncurry, c_app(c_app(c_app(fold, f_36), g_26), x14)), c_app(c_app(cons, z2), t2)), y) -> app(app(app(f_36, app(g_26, z2)), app(app(app(app(fold, f_36), g_26), x14), t2)), y) [2] app(c_app(c_app(uncurry, c_app(apply, f_15)), x), y) -> app(app(f_15, x), y) [2] app(c_app(c_app(uncurry, c_app(c_app(compose, g_12), f_16)), x), y) -> app(app(g_12, app(f_16, x)), y) [2] app(c_app(c_app(uncurry, c_app(c_app(swap, f_25), y2)), x), y) -> app(app(app(f_25, x), y2), y) [2] app(c_app(c_app(uncurry, c_app(c_app(uncurry, f_26), x15)), x), y) -> app(app(app(f_26, x15), x), y) [2] app(c_app(c_app(uncurry, f_2), x), y) -> app(c_app(f_2, x), y) [1] app(c_app(c_app(uncurry, f_2), x), y) -> app(null_app, y) [1] encArg(apply) -> apply [0] encArg(id) -> id [0] encArg(uncurry) -> uncurry [0] encArg(swap) -> swap [0] encArg(compose) -> compose [0] encArg(const) -> const [0] encArg(listify) -> listify [0] encArg(cons) -> cons [0] encArg(nil) -> nil [0] encArg(fold) -> fold [0] encArg(sum) -> sum [0] encArg(add) -> add [0] encArg(0) -> 0 [0] encArg(1) -> 1 [0] encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) [0] encArg(cons_append) -> append [0] encArg(cons_reverse) -> reverse [0] encArg(cons_length) -> length [0] encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) [0] encode_apply -> apply [0] encode_id -> id [0] encode_uncurry -> uncurry [0] encode_swap -> swap [0] encode_compose -> compose [0] encode_const -> const [0] encode_listify -> listify [0] encode_cons -> cons [0] encode_nil -> nil [0] encode_fold -> fold [0] encode_sum -> sum [0] encode_add -> add [0] encode_0 -> 0 [0] encode_append -> append [0] encode_reverse -> reverse [0] encode_length -> length [0] encode_1 -> 1 [0] app(x0, x1) -> c_app(x0, x1) [0] encArg(v0) -> null_encArg [0] encode_app(v0, v1) -> null_encode_app [0] encode_apply -> null_encode_apply [0] encode_id -> null_encode_id [0] encode_uncurry -> null_encode_uncurry [0] encode_swap -> null_encode_swap [0] encode_compose -> null_encode_compose [0] encode_const -> null_encode_const [0] encode_listify -> null_encode_listify [0] encode_cons -> null_encode_cons [0] encode_nil -> null_encode_nil [0] encode_fold -> null_encode_fold [0] encode_sum -> null_encode_sum [0] encode_add -> null_encode_add [0] encode_0 -> null_encode_0 [0] encode_append -> null_encode_append [0] encode_reverse -> null_encode_reverse [0] encode_length -> null_encode_length [0] encode_1 -> null_encode_1 [0] app(v0, v1) -> null_app [0] The TRS has the following type information: app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app 0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app 1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app c_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app Rewrite Strategy: INNERMOST ---------------------------------------- (25) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: id => 11 listify => 12 cons => 5 nil => 13 sum => 14 fold => 10 add => 2 0 => 0 compose => 4 swap => 15 uncurry => 16 1 => 1 const => 9 apply => 3 cons_append => 6 cons_reverse => 8 cons_length => 7 null_encArg => 0 null_encode_app => 0 null_encode_apply => 0 null_encode_id => 0 null_encode_uncurry => 0 null_encode_swap => 0 null_encode_compose => 0 null_encode_const => 0 null_encode_listify => 0 null_encode_cons => 0 null_encode_nil => 0 null_encode_fold => 0 null_encode_sum => 0 null_encode_add => 0 null_encode_0 => 0 null_encode_append => 0 null_encode_reverse => 0 null_encode_length => 0 null_encode_1 => 0 null_app => 0 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: app(z', z3) -{ 1 }-> x :|: z3 = x, z' = 11, x >= 0 app(z', z3) -{ 1 }-> x :|: z3 = 13, x >= 0, z' = 1 + (1 + (1 + 10 + f_3) + g_2) + x, f_3 >= 0, g_2 >= 0 app(z', z3) -{ 1 }-> x :|: z3 = y, x >= 0, y >= 0, z' = 1 + 9 + x app(z', z3) -{ 1 }-> app(f_1, x) :|: z3 = x, x >= 0, z' = 1 + 3 + f_1, f_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, x) :|: z3 = x, x >= 0, z' = 1 + (1 + 4 + g_1) + 11, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, x4) :|: z3 = 13, x4 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + (1 + 10 + f_31) + g_21) + x4), f_31 >= 0, g_21 >= 0, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, x5) :|: z3 = x, x5 >= 0, x >= 0, z' = 1 + (1 + 4 + g_1) + (1 + 9 + x5), g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(f_11, x)) :|: f_11 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + 3 + f_11), z3 = x, x >= 0, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(g_1'', app(f_12, x))) :|: z3 = x, f_12 >= 0, x >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + 4 + g_1'') + f_12), g_1 >= 0, g_1'' >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(f_21, x), y'')) :|: z3 = x, f_21 >= 0, x >= 0, y'' >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + 15 + f_21) + y''), g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(f_22, x7), x)) :|: z3 = x, f_22 >= 0, x7 >= 0, x >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + 16 + f_22) + x7), g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(f_32, app(g_22, z'')), app(app(app(app(10, f_32), g_22), x6), t''))) :|: z' = 1 + (1 + 4 + g_1) + (1 + (1 + (1 + 10 + f_32) + g_22) + x6), f_32 >= 0, z'' >= 0, g_22 >= 0, t'' >= 0, x6 >= 0, g_1 >= 0, z3 = 1 + (1 + 5 + z'') + t'' app(z', z3) -{ 2 }-> app(g_1, app(app(app(app(10, 2), 11), 0), x)) :|: z3 = x, x >= 0, z' = 1 + (1 + 4 + g_1) + 14, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(5, x), 13)) :|: z3 = x, x >= 0, z' = 1 + (1 + 4 + g_1) + 12, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, 11) :|: z3 = 13, z' = 1 + (1 + 4 + g_1) + (1 + 16 + (1 + (1 + 10 + 5) + 11)), g_1 >= 0 app(z', z3) -{ 1 }-> app(g_1, 0) :|: z3 = x, x >= 0, z' = 1 + (1 + 4 + g_1) + f_1, g_1 >= 0, f_1 >= 0 app(z', z3) -{ 1 }-> app(g_1, 1 + f_1 + x) :|: z3 = x, x >= 0, z' = 1 + (1 + 4 + g_1) + f_1, g_1 >= 0, f_1 >= 0 app(z', z3) -{ 2 }-> app(x, y) :|: z' = 1 + (1 + 15 + 11) + y, z3 = x, y >= 0, x >= 0 app(z', z3) -{ 2 }-> app(x, y) :|: z3 = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + 11) + x app(z', z3) -{ 2 }-> app(x12, y) :|: z' = 1 + (1 + 16 + (1 + (1 + (1 + 10 + f_35) + g_25) + x12)) + 13, z3 = y, y >= 0, x12 >= 0, g_25 >= 0, f_35 >= 0 app(z', z3) -{ 2 }-> app(x13, y) :|: x13 >= 0, z3 = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + (1 + 9 + x13)) + x app(z', z3) -{ 2 }-> app(x8, y) :|: z3 = 13, x8 >= 0, g_23 >= 0, y >= 0, z' = 1 + (1 + 15 + (1 + (1 + (1 + 10 + f_33) + g_23) + x8)) + y, f_33 >= 0 app(z', z3) -{ 2 }-> app(x9, y) :|: z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + (1 + 9 + x9)) + y, x9 >= 0 app(z', z3) -{ 2 }-> app(app(f_13, x), y) :|: z3 = x, y >= 0, x >= 0, f_13 >= 0, z' = 1 + (1 + 15 + (1 + 3 + f_13)) + y app(z', z3) -{ 2 }-> app(app(f_15, x), y) :|: f_15 >= 0, z3 = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + (1 + 3 + f_15)) + x app(z', z3) -{ 1 }-> app(app(f_3, app(g_2, z)), app(app(app(app(10, f_3), g_2), x), t)) :|: z3 = 1 + (1 + 5 + z) + t, z >= 0, x >= 0, t >= 0, z' = 1 + (1 + (1 + 10 + f_3) + g_2) + x, f_3 >= 0, g_2 >= 0 app(z', z3) -{ 2 }-> app(app(g_11, app(f_14, x)), y) :|: z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + (1 + (1 + 4 + g_11) + f_14)) + y, g_11 >= 0, f_14 >= 0 app(z', z3) -{ 2 }-> app(app(g_12, app(f_16, x)), y) :|: z' = 1 + (1 + 16 + (1 + (1 + 4 + g_12) + f_16)) + x, f_16 >= 0, g_12 >= 0, z3 = y, x >= 0, y >= 0 app(z', z3) -{ 2 }-> app(app(app(f_23, x), y1), y) :|: y1 >= 0, z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + (1 + (1 + 15 + f_23) + y1)) + y, f_23 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_24, x11), x), y) :|: z3 = x, z' = 1 + (1 + 15 + (1 + (1 + 16 + f_24) + x11)) + y, y >= 0, x >= 0, x11 >= 0, f_24 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_25, x), y2), y) :|: f_25 >= 0, z3 = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + (1 + (1 + 15 + f_25) + y2)) + x, y2 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_26, x15), x), y) :|: z' = 1 + (1 + 16 + (1 + (1 + 16 + f_26) + x15)) + x, f_26 >= 0, z3 = y, x >= 0, y >= 0, x15 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_34, app(g_24, z1)), app(app(app(app(10, f_34), g_24), x10), t1)), y) :|: g_24 >= 0, z1 >= 0, y >= 0, z3 = 1 + (1 + 5 + z1) + t1, f_34 >= 0, t1 >= 0, x10 >= 0, z' = 1 + (1 + 15 + (1 + (1 + (1 + 10 + f_34) + g_24) + x10)) + y app(z', z3) -{ 2 }-> app(app(app(f_36, app(g_26, z2)), app(app(app(app(10, f_36), g_26), x14), t2)), y) :|: f_36 >= 0, z3 = y, y >= 0, x14 >= 0, z' = 1 + (1 + 16 + (1 + (1 + (1 + 10 + f_36) + g_26) + x14)) + (1 + (1 + 5 + z2) + t2), g_26 >= 0, z2 >= 0, t2 >= 0 app(z', z3) -{ 2 }-> app(app(app(app(app(10, 2), 11), 0), x), y) :|: z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + 14) + y app(z', z3) -{ 2 }-> app(app(app(app(app(10, 2), 11), 0), x), y) :|: z' = 1 + (1 + 16 + 14) + x, z3 = y, x >= 0, y >= 0 app(z', z3) -{ 2 }-> app(app(app(5, x), 13), y) :|: z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + 12) + y app(z', z3) -{ 2 }-> app(app(app(5, x), 13), y) :|: z' = 1 + (1 + 16 + 12) + x, z3 = y, x >= 0, y >= 0 app(z', z3) -{ 1 }-> app(app(app(0, 11), 0), l) :|: z3 = l, z' = 14, l >= 0 app(z', z3) -{ 1 }-> app(app(app(1 + 10 + 2, 11), 0), l) :|: z3 = l, z' = 14, l >= 0 app(z', z3) -{ 2 }-> app(11, y) :|: z3 = 13, z' = 1 + (1 + 15 + (1 + 16 + (1 + (1 + 10 + 5) + 11))) + y, y >= 0 app(z', z3) -{ 2 }-> app(11, y) :|: z3 = y, y >= 0, z' = 1 + (1 + 16 + (1 + 16 + (1 + (1 + 10 + 5) + 11))) + 13 app(z', z3) -{ 1 }-> app(0, y) :|: z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + f_2) + y, f_2 >= 0 app(z', z3) -{ 1 }-> app(0, y) :|: z3 = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + f_2) + x, f_2 >= 0 app(z', z3) -{ 1 }-> app(0, 13) :|: z' = 12, z3 = x, x >= 0 app(z', z3) -{ 1 }-> app(1 + f_2 + x, y) :|: z3 = x, y >= 0, x >= 0, z' = 1 + (1 + 15 + f_2) + y, f_2 >= 0 app(z', z3) -{ 1 }-> app(1 + f_2 + x, y) :|: z3 = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + f_2) + x, f_2 >= 0 app(z', z3) -{ 1 }-> app(1 + 5 + x, 13) :|: z' = 12, z3 = x, x >= 0 app(z', z3) -{ 1 }-> 11 :|: z' = 1 + 16 + (1 + (1 + 10 + 5) + 11), z3 = 13 app(z', z3) -{ 0 }-> 0 :|: z3 = v1, v0 >= 0, v1 >= 0, z' = v0 app(z', z3) -{ 0 }-> 1 + x0 + x1 :|: x0 >= 0, x1 >= 0, z3 = x1, z' = x0 append -{ 1 }-> app(app(4, app(0, 5)), 11) :|: append -{ 1 }-> app(app(4, app(1 + 15 + 10, 5)), 11) :|: encArg(z') -{ 0 }-> reverse :|: z' = 8 encArg(z') -{ 0 }-> length :|: z' = 7 encArg(z') -{ 0 }-> append :|: z' = 6 encArg(z') -{ 0 }-> app(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 9 :|: z' = 9 encArg(z') -{ 0 }-> 5 :|: z' = 5 encArg(z') -{ 0 }-> 4 :|: z' = 4 encArg(z') -{ 0 }-> 3 :|: z' = 3 encArg(z') -{ 0 }-> 2 :|: z' = 2 encArg(z') -{ 0 }-> 16 :|: z' = 16 encArg(z') -{ 0 }-> 15 :|: z' = 15 encArg(z') -{ 0 }-> 14 :|: z' = 14 encArg(z') -{ 0 }-> 13 :|: z' = 13 encArg(z') -{ 0 }-> 12 :|: z' = 12 encArg(z') -{ 0 }-> 11 :|: z' = 11 encArg(z') -{ 0 }-> 10 :|: z' = 10 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_0 -{ 0 }-> 0 :|: encode_1 -{ 0 }-> 1 :|: encode_1 -{ 0 }-> 0 :|: encode_add -{ 0 }-> 2 :|: encode_add -{ 0 }-> 0 :|: encode_app(z', z3) -{ 0 }-> app(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z3 = x_2, z' = x_1, x_2 >= 0 encode_app(z', z3) -{ 0 }-> 0 :|: z3 = v1, v0 >= 0, v1 >= 0, z' = v0 encode_append -{ 0 }-> append :|: encode_append -{ 0 }-> 0 :|: encode_apply -{ 0 }-> 3 :|: encode_apply -{ 0 }-> 0 :|: encode_compose -{ 0 }-> 4 :|: encode_compose -{ 0 }-> 0 :|: encode_cons -{ 0 }-> 5 :|: encode_cons -{ 0 }-> 0 :|: encode_const -{ 0 }-> 9 :|: encode_const -{ 0 }-> 0 :|: encode_fold -{ 0 }-> 10 :|: encode_fold -{ 0 }-> 0 :|: encode_id -{ 0 }-> 11 :|: encode_id -{ 0 }-> 0 :|: encode_length -{ 0 }-> length :|: encode_length -{ 0 }-> 0 :|: encode_listify -{ 0 }-> 12 :|: encode_listify -{ 0 }-> 0 :|: encode_nil -{ 0 }-> 13 :|: encode_nil -{ 0 }-> 0 :|: encode_reverse -{ 0 }-> reverse :|: encode_reverse -{ 0 }-> 0 :|: encode_sum -{ 0 }-> 14 :|: encode_sum -{ 0 }-> 0 :|: encode_swap -{ 0 }-> 15 :|: encode_swap -{ 0 }-> 0 :|: encode_uncurry -{ 0 }-> 16 :|: encode_uncurry -{ 0 }-> 0 :|: length -{ 1 }-> app(app(16, app(0, 0)), 0) :|: length -{ 1 }-> app(app(16, app(0, 1 + 5 + 1)), 0) :|: length -{ 1 }-> app(app(16, app(1 + 10 + 2, 0)), 0) :|: length -{ 1 }-> app(app(16, app(1 + 10 + 2, 1 + 5 + 1)), 0) :|: reverse -{ 2 }-> app(app(16, app(app(10, app(15, app(app(4, app(app(15, 10), 5)), 11))), 12)), 13) :|: ---------------------------------------- (27) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: app(z', z3) -{ 1 }-> x :|: z3 = 13, x >= 0, z' = 1 + (1 + (1 + 10 + f_3) + g_2) + x, f_3 >= 0, g_2 >= 0 app(z', z3) -{ 1 }-> z3 :|: z' = 11, z3 >= 0 app(z', z3) -{ 2 }-> app(g_1, x4) :|: z3 = 13, x4 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + (1 + 10 + f_31) + g_21) + x4), f_31 >= 0, g_21 >= 0, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, x5) :|: x5 >= 0, z3 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + 9 + x5), g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(f_11, z3)) :|: f_11 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + 3 + f_11), z3 >= 0, g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(g_1'', app(f_12, z3))) :|: f_12 >= 0, z3 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + 4 + g_1'') + f_12), g_1 >= 0, g_1'' >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(f_21, z3), y'')) :|: f_21 >= 0, z3 >= 0, y'' >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + 15 + f_21) + y''), g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(f_22, x7), z3)) :|: f_22 >= 0, x7 >= 0, z3 >= 0, z' = 1 + (1 + 4 + g_1) + (1 + (1 + 16 + f_22) + x7), g_1 >= 0 app(z', z3) -{ 2 }-> app(g_1, app(app(f_32, app(g_22, z'')), app(app(app(app(10, f_32), g_22), x6), t''))) :|: z' = 1 + (1 + 4 + g_1) + (1 + (1 + (1 + 10 + f_32) + g_22) + x6), f_32 >= 0, z'' >= 0, g_22 >= 0, t'' >= 0, x6 >= 0, g_1 >= 0, z3 = 1 + (1 + 5 + z'') + t'' app(z', z3) -{ 1 }-> app(g_1, 0) :|: z3 >= 0, z' = 1 + (1 + 4 + g_1) + f_1, g_1 >= 0, f_1 >= 0 app(z', z3) -{ 1 }-> app(g_1, 1 + f_1 + z3) :|: z3 >= 0, z' = 1 + (1 + 4 + g_1) + f_1, g_1 >= 0, f_1 >= 0 app(z', z3) -{ 2 }-> app(x12, z3) :|: z' = 1 + (1 + 16 + (1 + (1 + (1 + 10 + f_35) + g_25) + x12)) + 13, z3 >= 0, x12 >= 0, g_25 >= 0, f_35 >= 0 app(z', z3) -{ 2 }-> app(x13, z3) :|: x13 >= 0, x >= 0, z3 >= 0, z' = 1 + (1 + 16 + (1 + 9 + x13)) + x app(z', z3) -{ 2 }-> app(x8, y) :|: z3 = 13, x8 >= 0, g_23 >= 0, y >= 0, z' = 1 + (1 + 15 + (1 + (1 + (1 + 10 + f_33) + g_23) + x8)) + y, f_33 >= 0 app(z', z3) -{ 2 }-> app(x9, y) :|: y >= 0, z3 >= 0, z' = 1 + (1 + 15 + (1 + 9 + x9)) + y, x9 >= 0 app(z', z3) -{ 2 }-> app(z3, z' - 28) :|: z' - 28 >= 0, z3 >= 0 app(z', z3) -{ 2 }-> app(app(f_13, z3), y) :|: y >= 0, z3 >= 0, f_13 >= 0, z' = 1 + (1 + 15 + (1 + 3 + f_13)) + y app(z', z3) -{ 2 }-> app(app(f_15, x), z3) :|: f_15 >= 0, x >= 0, z3 >= 0, z' = 1 + (1 + 16 + (1 + 3 + f_15)) + x app(z', z3) -{ 1 }-> app(app(f_3, app(g_2, z)), app(app(app(app(10, f_3), g_2), x), t)) :|: z3 = 1 + (1 + 5 + z) + t, z >= 0, x >= 0, t >= 0, z' = 1 + (1 + (1 + 10 + f_3) + g_2) + x, f_3 >= 0, g_2 >= 0 app(z', z3) -{ 2 }-> app(app(g_11, app(f_14, z3)), y) :|: y >= 0, z3 >= 0, z' = 1 + (1 + 15 + (1 + (1 + 4 + g_11) + f_14)) + y, g_11 >= 0, f_14 >= 0 app(z', z3) -{ 2 }-> app(app(g_12, app(f_16, x)), z3) :|: z' = 1 + (1 + 16 + (1 + (1 + 4 + g_12) + f_16)) + x, f_16 >= 0, g_12 >= 0, x >= 0, z3 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_23, z3), y1), y) :|: y1 >= 0, y >= 0, z3 >= 0, z' = 1 + (1 + 15 + (1 + (1 + 15 + f_23) + y1)) + y, f_23 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_24, x11), z3), y) :|: z' = 1 + (1 + 15 + (1 + (1 + 16 + f_24) + x11)) + y, y >= 0, z3 >= 0, x11 >= 0, f_24 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_25, x), y2), z3) :|: f_25 >= 0, x >= 0, z3 >= 0, z' = 1 + (1 + 16 + (1 + (1 + 15 + f_25) + y2)) + x, y2 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_26, x15), x), z3) :|: z' = 1 + (1 + 16 + (1 + (1 + 16 + f_26) + x15)) + x, f_26 >= 0, x >= 0, z3 >= 0, x15 >= 0 app(z', z3) -{ 2 }-> app(app(app(f_34, app(g_24, z1)), app(app(app(app(10, f_34), g_24), x10), t1)), y) :|: g_24 >= 0, z1 >= 0, y >= 0, z3 = 1 + (1 + 5 + z1) + t1, f_34 >= 0, t1 >= 0, x10 >= 0, z' = 1 + (1 + 15 + (1 + (1 + (1 + 10 + f_34) + g_24) + x10)) + y app(z', z3) -{ 2 }-> app(app(app(f_36, app(g_26, z2)), app(app(app(app(10, f_36), g_26), x14), t2)), z3) :|: f_36 >= 0, z3 >= 0, x14 >= 0, z' = 1 + (1 + 16 + (1 + (1 + (1 + 10 + f_36) + g_26) + x14)) + (1 + (1 + 5 + z2) + t2), g_26 >= 0, z2 >= 0, t2 >= 0 app(z', z3) -{ 2 }-> app(app(app(app(app(10, 2), 11), 0), z3), z' - 31) :|: z' - 31 >= 0, z3 >= 0 app(z', z3) -{ 2 }-> app(app(app(app(app(10, 2), 11), 0), z' - 32), z3) :|: z' - 32 >= 0, z3 >= 0 app(z', z3) -{ 2 }-> app(app(app(5, z3), 13), z' - 29) :|: z' - 29 >= 0, z3 >= 0 app(z', z3) -{ 2 }-> app(app(app(5, z' - 30), 13), z3) :|: z' - 30 >= 0, z3 >= 0 app(z', z3) -{ 1 }-> app(app(app(0, 11), 0), z3) :|: z' = 14, z3 >= 0 app(z', z3) -{ 1 }-> app(app(app(1 + 10 + 2, 11), 0), z3) :|: z' = 14, z3 >= 0 app(z', z3) -{ 2 }-> app(11, z3) :|: z3 >= 0, z' = 1 + (1 + 16 + (1 + 16 + (1 + (1 + 10 + 5) + 11))) + 13 app(z', z3) -{ 2 }-> app(11, z' - 62) :|: z3 = 13, z' - 62 >= 0 app(z', z3) -{ 1 }-> app(0, y) :|: y >= 0, z3 >= 0, z' = 1 + (1 + 15 + f_2) + y, f_2 >= 0 app(z', z3) -{ 1 }-> app(0, z3) :|: x >= 0, z3 >= 0, z' = 1 + (1 + 16 + f_2) + x, f_2 >= 0 app(z', z3) -{ 1 }-> app(0, 13) :|: z' = 12, z3 >= 0 app(z', z3) -{ 2 }-> app(z' - 51, 11) :|: z3 = 13, z' - 51 >= 0 app(z', z3) -{ 1 }-> app(z' - 4, z3) :|: z3 >= 0, z' - 4 >= 0 app(z', z3) -{ 2 }-> app(z' - 29, z3) :|: z' - 29 >= 0, z3 >= 0 app(z', z3) -{ 2 }-> app(z' - 20, app(app(app(app(10, 2), 11), 0), z3)) :|: z3 >= 0, z' - 20 >= 0 app(z', z3) -{ 2 }-> app(z' - 18, app(app(5, z3), 13)) :|: z3 >= 0, z' - 18 >= 0 app(z', z3) -{ 2 }-> app(z' - 17, z3) :|: z3 >= 0, z' - 17 >= 0 app(z', z3) -{ 1 }-> app(1 + f_2 + x, z3) :|: x >= 0, z3 >= 0, z' = 1 + (1 + 16 + f_2) + x, f_2 >= 0 app(z', z3) -{ 1 }-> app(1 + f_2 + z3, y) :|: y >= 0, z3 >= 0, z' = 1 + (1 + 15 + f_2) + y, f_2 >= 0 app(z', z3) -{ 1 }-> app(1 + 5 + z3, 13) :|: z' = 12, z3 >= 0 app(z', z3) -{ 1 }-> 11 :|: z' = 1 + 16 + (1 + (1 + 10 + 5) + 11), z3 = 13 app(z', z3) -{ 0 }-> 0 :|: z' >= 0, z3 >= 0 app(z', z3) -{ 1 }-> z' - 10 :|: z' - 10 >= 0, z3 >= 0 app(z', z3) -{ 0 }-> 1 + z' + z3 :|: z' >= 0, z3 >= 0 append -{ 1 }-> app(app(4, app(0, 5)), 11) :|: append -{ 1 }-> app(app(4, app(1 + 15 + 10, 5)), 11) :|: encArg(z') -{ 0 }-> reverse :|: z' = 8 encArg(z') -{ 0 }-> length :|: z' = 7 encArg(z') -{ 0 }-> append :|: z' = 6 encArg(z') -{ 0 }-> app(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 9 :|: z' = 9 encArg(z') -{ 0 }-> 5 :|: z' = 5 encArg(z') -{ 0 }-> 4 :|: z' = 4 encArg(z') -{ 0 }-> 3 :|: z' = 3 encArg(z') -{ 0 }-> 2 :|: z' = 2 encArg(z') -{ 0 }-> 16 :|: z' = 16 encArg(z') -{ 0 }-> 15 :|: z' = 15 encArg(z') -{ 0 }-> 14 :|: z' = 14 encArg(z') -{ 0 }-> 13 :|: z' = 13 encArg(z') -{ 0 }-> 12 :|: z' = 12 encArg(z') -{ 0 }-> 11 :|: z' = 11 encArg(z') -{ 0 }-> 10 :|: z' = 10 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: z' >= 0 encode_0 -{ 0 }-> 0 :|: encode_1 -{ 0 }-> 1 :|: encode_1 -{ 0 }-> 0 :|: encode_add -{ 0 }-> 2 :|: encode_add -{ 0 }-> 0 :|: encode_app(z', z3) -{ 0 }-> app(encArg(z'), encArg(z3)) :|: z' >= 0, z3 >= 0 encode_app(z', z3) -{ 0 }-> 0 :|: z' >= 0, z3 >= 0 encode_append -{ 0 }-> append :|: encode_append -{ 0 }-> 0 :|: encode_apply -{ 0 }-> 3 :|: encode_apply -{ 0 }-> 0 :|: encode_compose -{ 0 }-> 4 :|: encode_compose -{ 0 }-> 0 :|: encode_cons -{ 0 }-> 5 :|: encode_cons -{ 0 }-> 0 :|: encode_const -{ 0 }-> 9 :|: encode_const -{ 0 }-> 0 :|: encode_fold -{ 0 }-> 10 :|: encode_fold -{ 0 }-> 0 :|: encode_id -{ 0 }-> 11 :|: encode_id -{ 0 }-> 0 :|: encode_length -{ 0 }-> length :|: encode_length -{ 0 }-> 0 :|: encode_listify -{ 0 }-> 12 :|: encode_listify -{ 0 }-> 0 :|: encode_nil -{ 0 }-> 13 :|: encode_nil -{ 0 }-> 0 :|: encode_reverse -{ 0 }-> reverse :|: encode_reverse -{ 0 }-> 0 :|: encode_sum -{ 0 }-> 14 :|: encode_sum -{ 0 }-> 0 :|: encode_swap -{ 0 }-> 15 :|: encode_swap -{ 0 }-> 0 :|: encode_uncurry -{ 0 }-> 16 :|: encode_uncurry -{ 0 }-> 0 :|: length -{ 1 }-> app(app(16, app(0, 0)), 0) :|: length -{ 1 }-> app(app(16, app(0, 1 + 5 + 1)), 0) :|: length -{ 1 }-> app(app(16, app(1 + 10 + 2, 0)), 0) :|: length -{ 1 }-> app(app(16, app(1 + 10 + 2, 1 + 5 + 1)), 0) :|: reverse -{ 2 }-> app(app(16, app(app(10, app(15, app(app(4, app(app(15, 10), 5)), 11))), 12)), 13) :|: ---------------------------------------- (29) 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: encArg(v0) -> null_encArg [0] encode_app(v0, v1) -> null_encode_app [0] encode_apply -> null_encode_apply [0] encode_id -> null_encode_id [0] encode_uncurry -> null_encode_uncurry [0] encode_swap -> null_encode_swap [0] encode_compose -> null_encode_compose [0] encode_const -> null_encode_const [0] encode_listify -> null_encode_listify [0] encode_cons -> null_encode_cons [0] encode_nil -> null_encode_nil [0] encode_fold -> null_encode_fold [0] encode_sum -> null_encode_sum [0] encode_add -> null_encode_add [0] encode_0 -> null_encode_0 [0] encode_append -> null_encode_append [0] encode_reverse -> null_encode_reverse [0] encode_length -> null_encode_length [0] encode_1 -> null_encode_1 [0] app(v0, v1) -> null_app [0] And the following fresh constants: null_encArg, null_encode_app, null_encode_apply, null_encode_id, null_encode_uncurry, null_encode_swap, null_encode_compose, null_encode_const, null_encode_listify, null_encode_cons, null_encode_nil, null_encode_fold, null_encode_sum, null_encode_add, null_encode_0, null_encode_append, null_encode_reverse, null_encode_length, null_encode_1, null_app ---------------------------------------- (30) 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: app(id, x) -> x [1] app(listify, x) -> app(app(cons, x), nil) [1] app(sum, l) -> app(app(app(app(fold, add), id), 0), l) [1] append -> app(app(compose, app(app(swap, fold), cons)), id) [1] reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) [1] length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) [1] app(c_app(uncurry, c_app(c_app(fold, cons), id)), nil) -> id [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), nil) -> x [1] app(c_app(const, x), y) -> x [1] app(c_app(c_app(c_app(fold, f_3), g_2), x), c_app(c_app(cons, z), t)) -> app(app(f_3, app(g_2, z)), app(app(app(app(fold, f_3), g_2), x), t)) [1] app(c_app(apply, f_1), x) -> app(f_1, x) [1] app(c_app(c_app(compose, g_1), f_1), x) -> app(g_1, app(f_1, x)) [1] app(c_app(c_app(swap, f_2), y), x) -> app(app(f_2, x), y) [1] app(c_app(c_app(uncurry, f_2), x), y) -> app(app(f_2, x), y) [1] encArg(apply) -> apply [0] encArg(id) -> id [0] encArg(uncurry) -> uncurry [0] encArg(swap) -> swap [0] encArg(compose) -> compose [0] encArg(const) -> const [0] encArg(listify) -> listify [0] encArg(cons) -> cons [0] encArg(nil) -> nil [0] encArg(fold) -> fold [0] encArg(sum) -> sum [0] encArg(add) -> add [0] encArg(0) -> 0 [0] encArg(1) -> 1 [0] encArg(cons_app(x_1, x_2)) -> app(encArg(x_1), encArg(x_2)) [0] encArg(cons_append) -> append [0] encArg(cons_reverse) -> reverse [0] encArg(cons_length) -> length [0] encode_app(x_1, x_2) -> app(encArg(x_1), encArg(x_2)) [0] encode_apply -> apply [0] encode_id -> id [0] encode_uncurry -> uncurry [0] encode_swap -> swap [0] encode_compose -> compose [0] encode_const -> const [0] encode_listify -> listify [0] encode_cons -> cons [0] encode_nil -> nil [0] encode_fold -> fold [0] encode_sum -> sum [0] encode_add -> add [0] encode_0 -> 0 [0] encode_append -> append [0] encode_reverse -> reverse [0] encode_length -> length [0] encode_1 -> 1 [0] app(x0, x1) -> c_app(x0, x1) [0] encArg(v0) -> null_encArg [0] encode_app(v0, v1) -> null_encode_app [0] encode_apply -> null_encode_apply [0] encode_id -> null_encode_id [0] encode_uncurry -> null_encode_uncurry [0] encode_swap -> null_encode_swap [0] encode_compose -> null_encode_compose [0] encode_const -> null_encode_const [0] encode_listify -> null_encode_listify [0] encode_cons -> null_encode_cons [0] encode_nil -> null_encode_nil [0] encode_fold -> null_encode_fold [0] encode_sum -> null_encode_sum [0] encode_add -> null_encode_add [0] encode_0 -> null_encode_0 [0] encode_append -> null_encode_append [0] encode_reverse -> null_encode_reverse [0] encode_length -> null_encode_length [0] encode_1 -> null_encode_1 [0] app(v0, v1) -> null_app [0] The TRS has the following type information: app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app 0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app 1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app c_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app cons_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app -> id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encArg :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_apply :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_id :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_uncurry :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_swap :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_compose :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_const :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_listify :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_cons :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_nil :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_fold :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_sum :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_add :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_0 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_append :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_reverse :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_length :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_encode_1 :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app null_app :: id:listify:cons:nil:sum:fold:add:0:compose:swap:uncurry:1:c_app:const:apply:cons_app:cons_append:cons_reverse:cons_length:null_encArg:null_encode_app:null_encode_apply:null_encode_id:null_encode_uncurry:null_encode_swap:null_encode_compose:null_encode_const:null_encode_listify:null_encode_cons:null_encode_nil:null_encode_fold:null_encode_sum:null_encode_add:null_encode_0:null_encode_append:null_encode_reverse:null_encode_length:null_encode_1:null_app Rewrite Strategy: INNERMOST ---------------------------------------- (31) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: id => 11 listify => 12 cons => 5 nil => 13 sum => 14 fold => 10 add => 2 0 => 0 compose => 4 swap => 15 uncurry => 16 1 => 1 const => 9 apply => 3 cons_append => 6 cons_reverse => 8 cons_length => 7 null_encArg => 0 null_encode_app => 0 null_encode_apply => 0 null_encode_id => 0 null_encode_uncurry => 0 null_encode_swap => 0 null_encode_compose => 0 null_encode_const => 0 null_encode_listify => 0 null_encode_cons => 0 null_encode_nil => 0 null_encode_fold => 0 null_encode_sum => 0 null_encode_add => 0 null_encode_0 => 0 null_encode_append => 0 null_encode_reverse => 0 null_encode_length => 0 null_encode_1 => 0 null_app => 0 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: app(z', z'') -{ 1 }-> x :|: z' = 11, x >= 0, z'' = x app(z', z'') -{ 1 }-> x :|: x >= 0, z' = 1 + (1 + (1 + 10 + f_3) + g_2) + x, f_3 >= 0, g_2 >= 0, z'' = 13 app(z', z'') -{ 1 }-> x :|: z'' = y, x >= 0, y >= 0, z' = 1 + 9 + x app(z', z'') -{ 1 }-> app(f_1, x) :|: x >= 0, z'' = x, z' = 1 + 3 + f_1, f_1 >= 0 app(z', z'') -{ 1 }-> app(g_1, app(f_1, x)) :|: x >= 0, z'' = x, z' = 1 + (1 + 4 + g_1) + f_1, g_1 >= 0, f_1 >= 0 app(z', z'') -{ 1 }-> app(app(f_2, x), y) :|: y >= 0, x >= 0, z'' = x, z' = 1 + (1 + 15 + f_2) + y, f_2 >= 0 app(z', z'') -{ 1 }-> app(app(f_2, x), y) :|: z'' = y, x >= 0, y >= 0, z' = 1 + (1 + 16 + f_2) + x, f_2 >= 0 app(z', z'') -{ 1 }-> app(app(f_3, app(g_2, z)), app(app(app(app(10, f_3), g_2), x), t)) :|: z >= 0, x >= 0, t >= 0, z' = 1 + (1 + (1 + 10 + f_3) + g_2) + x, f_3 >= 0, g_2 >= 0, z'' = 1 + (1 + 5 + z) + t app(z', z'') -{ 1 }-> app(app(app(app(10, 2), 11), 0), l) :|: z' = 14, l >= 0, z'' = l app(z', z'') -{ 1 }-> app(app(5, x), 13) :|: z' = 12, x >= 0, z'' = x app(z', z'') -{ 1 }-> 11 :|: z' = 1 + 16 + (1 + (1 + 10 + 5) + 11), z'' = 13 app(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 app(z', z'') -{ 0 }-> 1 + x0 + x1 :|: z'' = x1, x0 >= 0, x1 >= 0, z' = x0 append -{ 1 }-> app(app(4, app(app(15, 10), 5)), 11) :|: encArg(z') -{ 0 }-> reverse :|: z' = 8 encArg(z') -{ 0 }-> length :|: z' = 7 encArg(z') -{ 0 }-> append :|: z' = 6 encArg(z') -{ 0 }-> app(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z' = 1 + x_1 + x_2 encArg(z') -{ 0 }-> 9 :|: z' = 9 encArg(z') -{ 0 }-> 5 :|: z' = 5 encArg(z') -{ 0 }-> 4 :|: z' = 4 encArg(z') -{ 0 }-> 3 :|: z' = 3 encArg(z') -{ 0 }-> 2 :|: z' = 2 encArg(z') -{ 0 }-> 16 :|: z' = 16 encArg(z') -{ 0 }-> 15 :|: z' = 15 encArg(z') -{ 0 }-> 14 :|: z' = 14 encArg(z') -{ 0 }-> 13 :|: z' = 13 encArg(z') -{ 0 }-> 12 :|: z' = 12 encArg(z') -{ 0 }-> 11 :|: z' = 11 encArg(z') -{ 0 }-> 10 :|: z' = 10 encArg(z') -{ 0 }-> 1 :|: z' = 1 encArg(z') -{ 0 }-> 0 :|: z' = 0 encArg(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 encode_0 -{ 0 }-> 0 :|: encode_1 -{ 0 }-> 1 :|: encode_1 -{ 0 }-> 0 :|: encode_add -{ 0 }-> 2 :|: encode_add -{ 0 }-> 0 :|: encode_app(z', z'') -{ 0 }-> app(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z' = x_1, x_2 >= 0, z'' = x_2 encode_app(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 encode_append -{ 0 }-> append :|: encode_append -{ 0 }-> 0 :|: encode_apply -{ 0 }-> 3 :|: encode_apply -{ 0 }-> 0 :|: encode_compose -{ 0 }-> 4 :|: encode_compose -{ 0 }-> 0 :|: encode_cons -{ 0 }-> 5 :|: encode_cons -{ 0 }-> 0 :|: encode_const -{ 0 }-> 9 :|: encode_const -{ 0 }-> 0 :|: encode_fold -{ 0 }-> 10 :|: encode_fold -{ 0 }-> 0 :|: encode_id -{ 0 }-> 11 :|: encode_id -{ 0 }-> 0 :|: encode_length -{ 0 }-> length :|: encode_length -{ 0 }-> 0 :|: encode_listify -{ 0 }-> 12 :|: encode_listify -{ 0 }-> 0 :|: encode_nil -{ 0 }-> 13 :|: encode_nil -{ 0 }-> 0 :|: encode_reverse -{ 0 }-> reverse :|: encode_reverse -{ 0 }-> 0 :|: encode_sum -{ 0 }-> 14 :|: encode_sum -{ 0 }-> 0 :|: encode_swap -{ 0 }-> 15 :|: encode_swap -{ 0 }-> 0 :|: encode_uncurry -{ 0 }-> 16 :|: encode_uncurry -{ 0 }-> 0 :|: length -{ 1 }-> app(app(16, app(app(10, 2), app(5, 1))), 0) :|: reverse -{ 1 }-> app(app(16, app(app(10, app(15, append)), 12)), 13) :|: Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (33) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(z0, z1) -> app(encArg(z0), encArg(z1)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(apply) -> c ENCARG(id) -> c1 ENCARG(uncurry) -> c2 ENCARG(swap) -> c3 ENCARG(compose) -> c4 ENCARG(const) -> c5 ENCARG(listify) -> c6 ENCARG(cons) -> c7 ENCARG(nil) -> c8 ENCARG(fold) -> c9 ENCARG(sum) -> c10 ENCARG(add) -> c11 ENCARG(0) -> c12 ENCARG(1) -> c13 ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) ENCODE_APP(z0, z1) -> c18(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCODE_APPLY -> c19 ENCODE_ID -> c20 ENCODE_UNCURRY -> c21 ENCODE_SWAP -> c22 ENCODE_COMPOSE -> c23 ENCODE_CONST -> c24 ENCODE_LISTIFY -> c25 ENCODE_CONS -> c26 ENCODE_NIL -> c27 ENCODE_FOLD -> c28 ENCODE_SUM -> c29 ENCODE_ADD -> c30 ENCODE_0 -> c31 ENCODE_APPEND -> c32(APPEND) ENCODE_REVERSE -> c33(REVERSE) ENCODE_LENGTH -> c34(LENGTH) ENCODE_1 -> c35 APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(listify, z0) -> c42(APP(app(cons, z0), nil), APP(cons, z0)) APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4), APP(app(app(fold, z0), z1), z2), APP(app(fold, z0), z1), APP(fold, z0)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0), APP(app(app(fold, add), id), 0), APP(app(fold, add), id), APP(fold, add)) APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APPEND -> c47(APP(app(compose, app(app(swap, fold), cons)), id), APP(compose, app(app(swap, fold), cons)), APP(app(swap, fold), cons), APP(swap, fold)) REVERSE -> c48(APP(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), APP(uncurry, app(app(fold, app(swap, append)), listify)), APP(app(fold, app(swap, append)), listify), APP(fold, app(swap, append)), APP(swap, append), APPEND) LENGTH -> c49(APP(app(uncurry, app(app(fold, add), app(cons, 1))), 0), APP(uncurry, app(app(fold, add), app(cons, 1))), APP(app(fold, add), app(cons, 1)), APP(fold, add), APP(cons, 1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(listify, z0) -> c42(APP(app(cons, z0), nil), APP(cons, z0)) APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4), APP(app(app(fold, z0), z1), z2), APP(app(fold, z0), z1), APP(fold, z0)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0), APP(app(app(fold, add), id), 0), APP(app(fold, add), id), APP(fold, add)) APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APPEND -> c47(APP(app(compose, app(app(swap, fold), cons)), id), APP(compose, app(app(swap, fold), cons)), APP(app(swap, fold), cons), APP(swap, fold)) REVERSE -> c48(APP(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), APP(uncurry, app(app(fold, app(swap, append)), listify)), APP(app(fold, app(swap, append)), listify), APP(fold, app(swap, append)), APP(swap, append), APPEND) LENGTH -> c49(APP(app(uncurry, app(app(fold, add), app(cons, 1))), 0), APP(uncurry, app(app(fold, add), app(cons, 1))), APP(app(fold, add), app(cons, 1)), APP(fold, add), APP(cons, 1)) K tuples:none Defined Rule Symbols: app_2, append, reverse, length, encArg_1, encode_app_2, encode_apply, encode_id, encode_uncurry, encode_swap, encode_compose, encode_const, encode_listify, encode_cons, encode_nil, encode_fold, encode_sum, encode_add, encode_0, encode_append, encode_reverse, encode_length, encode_1 Defined Pair Symbols: ENCARG_1, ENCODE_APP_2, ENCODE_APPLY, ENCODE_ID, ENCODE_UNCURRY, ENCODE_SWAP, ENCODE_COMPOSE, ENCODE_CONST, ENCODE_LISTIFY, ENCODE_CONS, ENCODE_NIL, ENCODE_FOLD, ENCODE_SUM, ENCODE_ADD, ENCODE_0, ENCODE_APPEND, ENCODE_REVERSE, ENCODE_LENGTH, ENCODE_1, APP_2, APPEND, REVERSE, LENGTH Compound Symbols: c, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14_3, c15_1, c16_1, c17_1, c18_3, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32_1, c33_1, c34_1, c35, c36_1, c37, c38_2, c39_2, c40_2, c41, c42_2, c43, c44_7, c45_4, c46, c47_4, c48_6, c49_5 ---------------------------------------- (35) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APPEND -> c32(APPEND) ENCODE_REVERSE -> c33(REVERSE) ENCODE_LENGTH -> c34(LENGTH) Removed 28 trailing nodes: ENCODE_CONS -> c26 ENCODE_APPLY -> c19 ENCARG(compose) -> c4 ENCODE_SWAP -> c22 ENCODE_ID -> c20 ENCODE_NIL -> c27 ENCODE_UNCURRY -> c21 ENCODE_CONST -> c24 ENCODE_COMPOSE -> c23 ENCODE_SUM -> c29 ENCARG(listify) -> c6 ENCARG(cons) -> c7 ENCARG(0) -> c12 ENCARG(sum) -> c10 ENCARG(swap) -> c3 ENCARG(add) -> c11 ENCODE_FOLD -> c28 ENCARG(const) -> c5 ENCODE_0 -> c31 ENCARG(1) -> c13 ENCARG(id) -> c1 ENCARG(uncurry) -> c2 ENCODE_ADD -> c30 ENCARG(nil) -> c8 ENCARG(fold) -> c9 ENCARG(apply) -> c ENCODE_1 -> c35 ENCODE_LISTIFY -> c25 ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(z0, z1) -> app(encArg(z0), encArg(z1)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) ENCODE_APP(z0, z1) -> c18(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(listify, z0) -> c42(APP(app(cons, z0), nil), APP(cons, z0)) APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4), APP(app(app(fold, z0), z1), z2), APP(app(fold, z0), z1), APP(fold, z0)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0), APP(app(app(fold, add), id), 0), APP(app(fold, add), id), APP(fold, add)) APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APPEND -> c47(APP(app(compose, app(app(swap, fold), cons)), id), APP(compose, app(app(swap, fold), cons)), APP(app(swap, fold), cons), APP(swap, fold)) REVERSE -> c48(APP(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), APP(uncurry, app(app(fold, app(swap, append)), listify)), APP(app(fold, app(swap, append)), listify), APP(fold, app(swap, append)), APP(swap, append), APPEND) LENGTH -> c49(APP(app(uncurry, app(app(fold, add), app(cons, 1))), 0), APP(uncurry, app(app(fold, add), app(cons, 1))), APP(app(fold, add), app(cons, 1)), APP(fold, add), APP(cons, 1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(listify, z0) -> c42(APP(app(cons, z0), nil), APP(cons, z0)) APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4), APP(app(app(fold, z0), z1), z2), APP(app(fold, z0), z1), APP(fold, z0)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0), APP(app(app(fold, add), id), 0), APP(app(fold, add), id), APP(fold, add)) APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APPEND -> c47(APP(app(compose, app(app(swap, fold), cons)), id), APP(compose, app(app(swap, fold), cons)), APP(app(swap, fold), cons), APP(swap, fold)) REVERSE -> c48(APP(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), APP(uncurry, app(app(fold, app(swap, append)), listify)), APP(app(fold, app(swap, append)), listify), APP(fold, app(swap, append)), APP(swap, append), APPEND) LENGTH -> c49(APP(app(uncurry, app(app(fold, add), app(cons, 1))), 0), APP(uncurry, app(app(fold, add), app(cons, 1))), APP(app(fold, add), app(cons, 1)), APP(fold, add), APP(cons, 1)) K tuples:none Defined Rule Symbols: app_2, append, reverse, length, encArg_1, encode_app_2, encode_apply, encode_id, encode_uncurry, encode_swap, encode_compose, encode_const, encode_listify, encode_cons, encode_nil, encode_fold, encode_sum, encode_add, encode_0, encode_append, encode_reverse, encode_length, encode_1 Defined Pair Symbols: ENCARG_1, ENCODE_APP_2, APP_2, APPEND, REVERSE, LENGTH Compound Symbols: c14_3, c15_1, c16_1, c17_1, c18_3, c36_1, c37, c38_2, c39_2, c40_2, c41, c42_2, c43, c44_7, c45_4, c46, c47_4, c48_6, c49_5 ---------------------------------------- (37) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 22 trailing tuple parts ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(z0, z1) -> app(encArg(z0), encArg(z1)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) ENCODE_APP(z0, z1) -> c18(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 K tuples:none Defined Rule Symbols: app_2, append, reverse, length, encArg_1, encode_app_2, encode_apply, encode_id, encode_uncurry, encode_swap, encode_compose, encode_const, encode_listify, encode_cons, encode_nil, encode_fold, encode_sum, encode_add, encode_0, encode_append, encode_reverse, encode_length, encode_1 Defined Pair Symbols: ENCARG_1, ENCODE_APP_2, APP_2, APPEND, REVERSE, LENGTH Compound Symbols: c14_3, c15_1, c16_1, c17_1, c18_3, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49 ---------------------------------------- (39) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(z0, z1) -> app(encArg(z0), encArg(z1)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) ENCODE_APP(z0, z1) -> c(ENCARG(z0)) ENCODE_APP(z0, z1) -> c(ENCARG(z1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 K tuples:none Defined Rule Symbols: app_2, append, reverse, length, encArg_1, encode_app_2, encode_apply, encode_id, encode_uncurry, encode_swap, encode_compose, encode_const, encode_listify, encode_cons, encode_nil, encode_fold, encode_sum, encode_add, encode_0, encode_append, encode_reverse, encode_length, encode_1 Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c14_3, c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1 ---------------------------------------- (41) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 2 leading nodes: ENCODE_APP(z0, z1) -> c(ENCARG(z0)) ENCODE_APP(z0, z1) -> c(ENCARG(z1)) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length encode_app(z0, z1) -> app(encArg(z0), encArg(z1)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 K tuples:none Defined Rule Symbols: app_2, append, reverse, length, encArg_1, encode_app_2, encode_apply, encode_id, encode_uncurry, encode_swap, encode_compose, encode_const, encode_listify, encode_cons, encode_nil, encode_fold, encode_sum, encode_add, encode_0, encode_append, encode_reverse, encode_length, encode_1 Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c14_3, c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1 ---------------------------------------- (43) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: encode_app(z0, z1) -> app(encArg(z0), encArg(z1)) encode_apply -> apply encode_id -> id encode_uncurry -> uncurry encode_swap -> swap encode_compose -> compose encode_const -> const encode_listify -> listify encode_cons -> cons encode_nil -> nil encode_fold -> fold encode_sum -> sum encode_add -> add encode_0 -> 0 encode_append -> append encode_reverse -> reverse encode_length -> length encode_1 -> 1 ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c14_3, c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1 ---------------------------------------- (45) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. LENGTH -> c49 We considered the (Usable) Rules:none And the Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(1) = 0 POL(APP(x_1, x_2)) = 0 POL(APPEND) = 0 POL(ENCARG(x_1)) = [1] + x_1 POL(ENCODE_APP(x_1, x_2)) = 0 POL(LENGTH) = [1] POL(REVERSE) = 0 POL(add) = 0 POL(app(x_1, x_2)) = x_1 + x_2 POL(append) = [1] POL(apply) = [1] POL(c(x_1)) = x_1 POL(c14(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37) = 0 POL(c38(x_1, x_2)) = x_1 + x_2 POL(c39(x_1, x_2)) = x_1 + x_2 POL(c40(x_1, x_2)) = x_1 + x_2 POL(c41) = 0 POL(c42) = 0 POL(c43) = 0 POL(c44(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c45(x_1)) = x_1 POL(c46) = 0 POL(c47) = 0 POL(c48(x_1)) = x_1 POL(c49) = 0 POL(compose) = 0 POL(cons) = [1] POL(cons_app(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_append) = [1] POL(cons_length) = 0 POL(cons_reverse) = [1] POL(const) = [1] POL(encArg(x_1)) = [1] + x_1 POL(fold) = 0 POL(id) = 0 POL(length) = [1] POL(listify) = 0 POL(nil) = 0 POL(reverse) = [1] POL(sum) = [1] POL(swap) = 0 POL(uncurry) = 0 ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) K tuples: LENGTH -> c49 Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c14_3, c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1 ---------------------------------------- (47) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. REVERSE -> c48(APPEND) We considered the (Usable) Rules:none And the Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(1) = [1] POL(APP(x_1, x_2)) = 0 POL(APPEND) = 0 POL(ENCARG(x_1)) = [1] + x_1 POL(ENCODE_APP(x_1, x_2)) = 0 POL(LENGTH) = [1] POL(REVERSE) = [1] POL(add) = [1] POL(app(x_1, x_2)) = [1] + x_2 POL(append) = [1] POL(apply) = [1] POL(c(x_1)) = x_1 POL(c14(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37) = 0 POL(c38(x_1, x_2)) = x_1 + x_2 POL(c39(x_1, x_2)) = x_1 + x_2 POL(c40(x_1, x_2)) = x_1 + x_2 POL(c41) = 0 POL(c42) = 0 POL(c43) = 0 POL(c44(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c45(x_1)) = x_1 POL(c46) = 0 POL(c47) = 0 POL(c48(x_1)) = x_1 POL(c49) = 0 POL(compose) = [1] POL(cons) = [1] POL(cons_app(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_append) = [1] POL(cons_length) = 0 POL(cons_reverse) = [1] POL(const) = [1] POL(encArg(x_1)) = [1] + x_1 POL(fold) = [1] POL(id) = 0 POL(length) = [1] POL(listify) = [1] POL(nil) = 0 POL(reverse) = [1] POL(sum) = [1] POL(swap) = [1] POL(uncurry) = [1] ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 K tuples: LENGTH -> c49 REVERSE -> c48(APPEND) Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c14_3, c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1 ---------------------------------------- (49) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. APPEND -> c47 We considered the (Usable) Rules:none And the Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(1) = 0 POL(APP(x_1, x_2)) = 0 POL(APPEND) = [1] POL(ENCARG(x_1)) = [1] + x_1 POL(ENCODE_APP(x_1, x_2)) = 0 POL(LENGTH) = [1] POL(REVERSE) = [1] POL(add) = 0 POL(app(x_1, x_2)) = x_1 + x_2 POL(append) = [1] POL(apply) = [1] POL(c(x_1)) = x_1 POL(c14(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37) = 0 POL(c38(x_1, x_2)) = x_1 + x_2 POL(c39(x_1, x_2)) = x_1 + x_2 POL(c40(x_1, x_2)) = x_1 + x_2 POL(c41) = 0 POL(c42) = 0 POL(c43) = 0 POL(c44(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c45(x_1)) = x_1 POL(c46) = 0 POL(c47) = 0 POL(c48(x_1)) = x_1 POL(c49) = 0 POL(compose) = 0 POL(cons) = [1] POL(cons_app(x_1, x_2)) = [1] + x_1 + x_2 POL(cons_append) = 0 POL(cons_length) = 0 POL(cons_reverse) = [1] POL(const) = [1] POL(encArg(x_1)) = [1] + x_1 POL(fold) = 0 POL(id) = 0 POL(length) = [1] POL(listify) = 0 POL(nil) = 0 POL(reverse) = [1] POL(sum) = [1] POL(swap) = 0 POL(uncurry) = 0 ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples: LENGTH -> c49 REVERSE -> c48(APPEND) APPEND -> c47 Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c14_3, c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1 ---------------------------------------- (51) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(z0, z1)) -> c14(APP(encArg(z0), encArg(z1)), ENCARG(z0), ENCARG(z1)) by ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0), ENCARG(apply)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0), ENCARG(id)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0), ENCARG(uncurry)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0), ENCARG(swap)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0), ENCARG(compose)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0), ENCARG(const)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0), ENCARG(listify)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0), ENCARG(cons)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0), ENCARG(fold)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0), ENCARG(sum)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0), ENCARG(add)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0), ENCARG(cons_append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0), ENCARG(cons_reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0), ENCARG(cons_length)) ENCARG(cons_app(apply, x1)) -> c14(APP(apply, encArg(x1)), ENCARG(apply), ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(id), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(APP(uncurry, encArg(x1)), ENCARG(uncurry), ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(APP(swap, encArg(x1)), ENCARG(swap), ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(APP(compose, encArg(x1)), ENCARG(compose), ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(APP(const, encArg(x1)), ENCARG(const), ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(listify), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(APP(cons, encArg(x1)), ENCARG(cons), ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(APP(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(APP(fold, encArg(x1)), ENCARG(fold), ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(sum), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(APP(add, encArg(x1)), ENCARG(add), ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(APP(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(APP(1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(cons_append), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(cons_reverse), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(cons_length), ENCARG(x1)) ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) ENCARG(cons_length) -> c17(LENGTH) APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) APPEND -> c47 REVERSE -> c48(APPEND) LENGTH -> c49 ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0), ENCARG(apply)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0), ENCARG(id)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0), ENCARG(uncurry)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0), ENCARG(swap)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0), ENCARG(compose)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0), ENCARG(const)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0), ENCARG(listify)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0), ENCARG(cons)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0), ENCARG(fold)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0), ENCARG(sum)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0), ENCARG(add)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0), ENCARG(cons_append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0), ENCARG(cons_reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0), ENCARG(cons_length)) ENCARG(cons_app(apply, x1)) -> c14(APP(apply, encArg(x1)), ENCARG(apply), ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(id), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(APP(uncurry, encArg(x1)), ENCARG(uncurry), ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(APP(swap, encArg(x1)), ENCARG(swap), ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(APP(compose, encArg(x1)), ENCARG(compose), ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(APP(const, encArg(x1)), ENCARG(const), ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(listify), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(APP(cons, encArg(x1)), ENCARG(cons), ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(APP(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(APP(fold, encArg(x1)), ENCARG(fold), ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(sum), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(APP(add, encArg(x1)), ENCARG(add), ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(APP(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(APP(1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(cons_append), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(cons_reverse), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(cons_length), ENCARG(x1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples: LENGTH -> c49 REVERSE -> c48(APPEND) APPEND -> c47 Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: ENCARG_1, APP_2, APPEND, REVERSE, LENGTH, ENCODE_APP_2 Compound Symbols: c15_1, c16_1, c17_1, c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c47, c48_1, c49, c_1, c14_3 ---------------------------------------- (53) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing nodes: LENGTH -> c49 REVERSE -> c48(APPEND) ENCARG(cons_append) -> c15(APPEND) ENCARG(cons_reverse) -> c16(REVERSE) APPEND -> c47 ENCARG(cons_length) -> c17(LENGTH) ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0), ENCARG(apply)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0), ENCARG(id)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0), ENCARG(uncurry)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0), ENCARG(swap)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0), ENCARG(compose)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0), ENCARG(const)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0), ENCARG(listify)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0), ENCARG(cons)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0), ENCARG(nil)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0), ENCARG(fold)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0), ENCARG(sum)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0), ENCARG(add)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0), ENCARG(cons_append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0), ENCARG(cons_reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0), ENCARG(cons_length)) ENCARG(cons_app(apply, x1)) -> c14(APP(apply, encArg(x1)), ENCARG(apply), ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(id), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(APP(uncurry, encArg(x1)), ENCARG(uncurry), ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(APP(swap, encArg(x1)), ENCARG(swap), ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(APP(compose, encArg(x1)), ENCARG(compose), ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(APP(const, encArg(x1)), ENCARG(const), ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(listify), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(APP(cons, encArg(x1)), ENCARG(cons), ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(APP(nil, encArg(x1)), ENCARG(nil), ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(APP(fold, encArg(x1)), ENCARG(fold), ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(sum), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(APP(add, encArg(x1)), ENCARG(add), ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(APP(0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(APP(1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(cons_append), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(cons_reverse), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(cons_length), ENCARG(x1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCODE_APP_2, ENCARG_1 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c_1, c14_3 ---------------------------------------- (55) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 45 trailing tuple parts ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCODE_APP_2, ENCARG_1 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c_1, c14_3, c14_2, c14_1 ---------------------------------------- (57) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(z0, z1) -> c(APP(encArg(z0), encArg(z1))) by ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(apply, x1) -> c(APP(apply, encArg(x1))) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(uncurry, x1) -> c(APP(uncurry, encArg(x1))) ENCODE_APP(swap, x1) -> c(APP(swap, encArg(x1))) ENCODE_APP(compose, x1) -> c(APP(compose, encArg(x1))) ENCODE_APP(const, x1) -> c(APP(const, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(cons, x1) -> c(APP(cons, encArg(x1))) ENCODE_APP(nil, x1) -> c(APP(nil, encArg(x1))) ENCODE_APP(fold, x1) -> c(APP(fold, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(add, x1) -> c(APP(add, encArg(x1))) ENCODE_APP(0, x1) -> c(APP(0, encArg(x1))) ENCODE_APP(1, x1) -> c(APP(1, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(apply, x1) -> c(APP(apply, encArg(x1))) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(uncurry, x1) -> c(APP(uncurry, encArg(x1))) ENCODE_APP(swap, x1) -> c(APP(swap, encArg(x1))) ENCODE_APP(compose, x1) -> c(APP(compose, encArg(x1))) ENCODE_APP(const, x1) -> c(APP(const, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(cons, x1) -> c(APP(cons, encArg(x1))) ENCODE_APP(nil, x1) -> c(APP(nil, encArg(x1))) ENCODE_APP(fold, x1) -> c(APP(fold, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(add, x1) -> c(APP(add, encArg(x1))) ENCODE_APP(0, x1) -> c(APP(0, encArg(x1))) ENCODE_APP(1, x1) -> c(APP(1, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_3, c14_2, c14_1, c_1 ---------------------------------------- (59) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCODE_APP(compose, x1) -> c(APP(compose, encArg(x1))) ENCODE_APP(apply, x1) -> c(APP(apply, encArg(x1))) ENCODE_APP(1, x1) -> c(APP(1, encArg(x1))) ENCODE_APP(const, x1) -> c(APP(const, encArg(x1))) ENCODE_APP(fold, x1) -> c(APP(fold, encArg(x1))) ENCODE_APP(nil, x1) -> c(APP(nil, encArg(x1))) ENCODE_APP(swap, x1) -> c(APP(swap, encArg(x1))) ENCODE_APP(cons, x1) -> c(APP(cons, encArg(x1))) ENCODE_APP(0, x1) -> c(APP(0, encArg(x1))) ENCODE_APP(uncurry, x1) -> c(APP(uncurry, encArg(x1))) ENCODE_APP(add, x1) -> c(APP(add, encArg(x1))) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_3, c14_2, c14_1, c_1 ---------------------------------------- (61) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, cons_app(z0, z1))) -> c14(APP(encArg(x0), app(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_app(z0, z1))) by ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(APP(apply, app(encArg(x1), encArg(x2))), ENCARG(apply), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(id), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(APP(uncurry, app(encArg(x1), encArg(x2))), ENCARG(uncurry), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(APP(swap, app(encArg(x1), encArg(x2))), ENCARG(swap), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(APP(compose, app(encArg(x1), encArg(x2))), ENCARG(compose), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(APP(const, app(encArg(x1), encArg(x2))), ENCARG(const), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(listify), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(APP(cons, app(encArg(x1), encArg(x2))), ENCARG(cons), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(APP(nil, app(encArg(x1), encArg(x2))), ENCARG(nil), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(APP(fold, app(encArg(x1), encArg(x2))), ENCARG(fold), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(sum), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(APP(add, app(encArg(x1), encArg(x2))), ENCARG(add), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(APP(0, app(encArg(x1), encArg(x2))), ENCARG(0), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(APP(1, app(encArg(x1), encArg(x2))), ENCARG(1), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_append), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_reverse), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_length), ENCARG(cons_app(x1, x2))) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(APP(apply, app(encArg(x1), encArg(x2))), ENCARG(apply), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(id), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(APP(uncurry, app(encArg(x1), encArg(x2))), ENCARG(uncurry), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(APP(swap, app(encArg(x1), encArg(x2))), ENCARG(swap), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(APP(compose, app(encArg(x1), encArg(x2))), ENCARG(compose), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(APP(const, app(encArg(x1), encArg(x2))), ENCARG(const), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(listify), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(APP(cons, app(encArg(x1), encArg(x2))), ENCARG(cons), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(APP(nil, app(encArg(x1), encArg(x2))), ENCARG(nil), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(APP(fold, app(encArg(x1), encArg(x2))), ENCARG(fold), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(sum), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(APP(add, app(encArg(x1), encArg(x2))), ENCARG(add), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(APP(0, app(encArg(x1), encArg(x2))), ENCARG(0), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(APP(1, app(encArg(x1), encArg(x2))), ENCARG(1), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_append), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_reverse), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_length), ENCARG(cons_app(x1, x2))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_3, c14_2, c14_1, c_1 ---------------------------------------- (63) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 28 trailing tuple parts ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_3, c14_2, c14_1, c_1 ---------------------------------------- (65) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(cons_app(z0, z1), x1)) -> c14(APP(app(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(cons_app(z0, z1)), ENCARG(x1)) by ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1)), ENCARG(apply)) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1)), ENCARG(id)) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1)), ENCARG(uncurry)) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1)), ENCARG(swap)) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1)), ENCARG(compose)) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1)), ENCARG(const)) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1)), ENCARG(listify)) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1)), ENCARG(cons)) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1)), ENCARG(nil)) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1)), ENCARG(fold)) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1)), ENCARG(sum)) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1)), ENCARG(add)) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1)), ENCARG(0)) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1)), ENCARG(1)) ENCARG(cons_app(cons_app(x0, x1), cons_app(z0, z1))) -> c14(APP(app(encArg(x0), encArg(x1)), app(encArg(z0), encArg(z1))), ENCARG(cons_app(x0, x1)), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1)), ENCARG(cons_append)) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1)), ENCARG(cons_reverse)) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1)), ENCARG(cons_length)) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(APP(app(swap, encArg(x1)), encArg(x2)), ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(APP(app(compose, encArg(x1)), encArg(x2)), ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(APP(app(cons, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(APP(app(nil, encArg(x1)), encArg(x2)), ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(APP(app(fold, encArg(x1)), encArg(x2)), ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(APP(app(add, encArg(x1)), encArg(x2)), ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(APP(app(0, encArg(x1)), encArg(x2)), ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(APP(app(1, encArg(x1)), encArg(x2)), ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1)), ENCARG(apply)) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1)), ENCARG(id)) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1)), ENCARG(uncurry)) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1)), ENCARG(swap)) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1)), ENCARG(compose)) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1)), ENCARG(const)) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1)), ENCARG(listify)) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1)), ENCARG(cons)) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1)), ENCARG(nil)) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1)), ENCARG(fold)) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1)), ENCARG(sum)) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1)), ENCARG(add)) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1)), ENCARG(0)) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1)), ENCARG(1)) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1)), ENCARG(cons_append)) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1)), ENCARG(cons_reverse)) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1)), ENCARG(cons_length)) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(APP(app(swap, encArg(x1)), encArg(x2)), ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(APP(app(compose, encArg(x1)), encArg(x2)), ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(APP(app(cons, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(APP(app(nil, encArg(x1)), encArg(x2)), ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(APP(app(fold, encArg(x1)), encArg(x2)), ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(APP(app(add, encArg(x1)), encArg(x2)), ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(APP(app(0, encArg(x1)), encArg(x2)), ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(APP(app(1, encArg(x1)), encArg(x2)), ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 25 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, apply)) -> c14(APP(encArg(x0), apply), ENCARG(x0)) by ENCARG(cons_app(apply, apply)) -> c14(APP(apply, apply), ENCARG(apply)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply), ENCARG(id)) ENCARG(cons_app(uncurry, apply)) -> c14(APP(uncurry, apply), ENCARG(uncurry)) ENCARG(cons_app(swap, apply)) -> c14(APP(swap, apply), ENCARG(swap)) ENCARG(cons_app(compose, apply)) -> c14(APP(compose, apply), ENCARG(compose)) ENCARG(cons_app(const, apply)) -> c14(APP(const, apply), ENCARG(const)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply), ENCARG(listify)) ENCARG(cons_app(cons, apply)) -> c14(APP(cons, apply), ENCARG(cons)) ENCARG(cons_app(nil, apply)) -> c14(APP(nil, apply), ENCARG(nil)) ENCARG(cons_app(fold, apply)) -> c14(APP(fold, apply), ENCARG(fold)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply), ENCARG(sum)) ENCARG(cons_app(add, apply)) -> c14(APP(add, apply), ENCARG(add)) ENCARG(cons_app(0, apply)) -> c14(APP(0, apply), ENCARG(0)) ENCARG(cons_app(1, apply)) -> c14(APP(1, apply), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), apply)) -> c14(APP(app(encArg(z0), encArg(z1)), apply), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply), ENCARG(cons_length)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(apply, apply)) -> c14(APP(apply, apply), ENCARG(apply)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply), ENCARG(id)) ENCARG(cons_app(uncurry, apply)) -> c14(APP(uncurry, apply), ENCARG(uncurry)) ENCARG(cons_app(swap, apply)) -> c14(APP(swap, apply), ENCARG(swap)) ENCARG(cons_app(compose, apply)) -> c14(APP(compose, apply), ENCARG(compose)) ENCARG(cons_app(const, apply)) -> c14(APP(const, apply), ENCARG(const)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply), ENCARG(listify)) ENCARG(cons_app(cons, apply)) -> c14(APP(cons, apply), ENCARG(cons)) ENCARG(cons_app(nil, apply)) -> c14(APP(nil, apply), ENCARG(nil)) ENCARG(cons_app(fold, apply)) -> c14(APP(fold, apply), ENCARG(fold)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply), ENCARG(sum)) ENCARG(cons_app(add, apply)) -> c14(APP(add, apply), ENCARG(add)) ENCARG(cons_app(0, apply)) -> c14(APP(0, apply), ENCARG(0)) ENCARG(cons_app(1, apply)) -> c14(APP(1, apply), ENCARG(1)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (71) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(nil, apply)) -> c14(APP(nil, apply), ENCARG(nil)) ENCARG(cons_app(cons, apply)) -> c14(APP(cons, apply), ENCARG(cons)) ENCARG(cons_app(swap, apply)) -> c14(APP(swap, apply), ENCARG(swap)) ENCARG(cons_app(const, apply)) -> c14(APP(const, apply), ENCARG(const)) ENCARG(cons_app(apply, apply)) -> c14(APP(apply, apply), ENCARG(apply)) ENCARG(cons_app(compose, apply)) -> c14(APP(compose, apply), ENCARG(compose)) ENCARG(cons_app(1, apply)) -> c14(APP(1, apply), ENCARG(1)) ENCARG(cons_app(add, apply)) -> c14(APP(add, apply), ENCARG(add)) ENCARG(cons_app(0, apply)) -> c14(APP(0, apply), ENCARG(0)) ENCARG(cons_app(fold, apply)) -> c14(APP(fold, apply), ENCARG(fold)) ENCARG(cons_app(uncurry, apply)) -> c14(APP(uncurry, apply), ENCARG(uncurry)) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply), ENCARG(id)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply), ENCARG(listify)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply), ENCARG(sum)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, id)) -> c14(APP(encArg(x0), id), ENCARG(x0)) by ENCARG(cons_app(apply, id)) -> c14(APP(apply, id), ENCARG(apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id), ENCARG(id)) ENCARG(cons_app(uncurry, id)) -> c14(APP(uncurry, id), ENCARG(uncurry)) ENCARG(cons_app(swap, id)) -> c14(APP(swap, id), ENCARG(swap)) ENCARG(cons_app(compose, id)) -> c14(APP(compose, id), ENCARG(compose)) ENCARG(cons_app(const, id)) -> c14(APP(const, id), ENCARG(const)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id), ENCARG(listify)) ENCARG(cons_app(cons, id)) -> c14(APP(cons, id), ENCARG(cons)) ENCARG(cons_app(nil, id)) -> c14(APP(nil, id), ENCARG(nil)) ENCARG(cons_app(fold, id)) -> c14(APP(fold, id), ENCARG(fold)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id), ENCARG(sum)) ENCARG(cons_app(add, id)) -> c14(APP(add, id), ENCARG(add)) ENCARG(cons_app(0, id)) -> c14(APP(0, id), ENCARG(0)) ENCARG(cons_app(1, id)) -> c14(APP(1, id), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), id)) -> c14(APP(app(encArg(z0), encArg(z1)), id), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id), ENCARG(cons_length)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(apply, id)) -> c14(APP(apply, id), ENCARG(apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id), ENCARG(id)) ENCARG(cons_app(uncurry, id)) -> c14(APP(uncurry, id), ENCARG(uncurry)) ENCARG(cons_app(swap, id)) -> c14(APP(swap, id), ENCARG(swap)) ENCARG(cons_app(compose, id)) -> c14(APP(compose, id), ENCARG(compose)) ENCARG(cons_app(const, id)) -> c14(APP(const, id), ENCARG(const)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id), ENCARG(listify)) ENCARG(cons_app(cons, id)) -> c14(APP(cons, id), ENCARG(cons)) ENCARG(cons_app(nil, id)) -> c14(APP(nil, id), ENCARG(nil)) ENCARG(cons_app(fold, id)) -> c14(APP(fold, id), ENCARG(fold)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id), ENCARG(sum)) ENCARG(cons_app(add, id)) -> c14(APP(add, id), ENCARG(add)) ENCARG(cons_app(0, id)) -> c14(APP(0, id), ENCARG(0)) ENCARG(cons_app(1, id)) -> c14(APP(1, id), ENCARG(1)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (77) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(nil, id)) -> c14(APP(nil, id), ENCARG(nil)) ENCARG(cons_app(cons, id)) -> c14(APP(cons, id), ENCARG(cons)) ENCARG(cons_app(swap, id)) -> c14(APP(swap, id), ENCARG(swap)) ENCARG(cons_app(compose, id)) -> c14(APP(compose, id), ENCARG(compose)) ENCARG(cons_app(0, id)) -> c14(APP(0, id), ENCARG(0)) ENCARG(cons_app(const, id)) -> c14(APP(const, id), ENCARG(const)) ENCARG(cons_app(apply, id)) -> c14(APP(apply, id), ENCARG(apply)) ENCARG(cons_app(1, id)) -> c14(APP(1, id), ENCARG(1)) ENCARG(cons_app(fold, id)) -> c14(APP(fold, id), ENCARG(fold)) ENCARG(cons_app(add, id)) -> c14(APP(add, id), ENCARG(add)) ENCARG(cons_app(uncurry, id)) -> c14(APP(uncurry, id), ENCARG(uncurry)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id), ENCARG(id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id), ENCARG(listify)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id), ENCARG(sum)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, uncurry)) -> c14(APP(encArg(x0), uncurry), ENCARG(x0)) by ENCARG(cons_app(apply, uncurry)) -> c14(APP(apply, uncurry), ENCARG(apply)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry), ENCARG(id)) ENCARG(cons_app(uncurry, uncurry)) -> c14(APP(uncurry, uncurry), ENCARG(uncurry)) ENCARG(cons_app(swap, uncurry)) -> c14(APP(swap, uncurry), ENCARG(swap)) ENCARG(cons_app(compose, uncurry)) -> c14(APP(compose, uncurry), ENCARG(compose)) ENCARG(cons_app(const, uncurry)) -> c14(APP(const, uncurry), ENCARG(const)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry), ENCARG(listify)) ENCARG(cons_app(cons, uncurry)) -> c14(APP(cons, uncurry), ENCARG(cons)) ENCARG(cons_app(nil, uncurry)) -> c14(APP(nil, uncurry), ENCARG(nil)) ENCARG(cons_app(fold, uncurry)) -> c14(APP(fold, uncurry), ENCARG(fold)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry), ENCARG(sum)) ENCARG(cons_app(add, uncurry)) -> c14(APP(add, uncurry), ENCARG(add)) ENCARG(cons_app(0, uncurry)) -> c14(APP(0, uncurry), ENCARG(0)) ENCARG(cons_app(1, uncurry)) -> c14(APP(1, uncurry), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), uncurry)) -> c14(APP(app(encArg(z0), encArg(z1)), uncurry), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry), ENCARG(cons_length)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(apply, uncurry)) -> c14(APP(apply, uncurry), ENCARG(apply)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry), ENCARG(id)) ENCARG(cons_app(uncurry, uncurry)) -> c14(APP(uncurry, uncurry), ENCARG(uncurry)) ENCARG(cons_app(swap, uncurry)) -> c14(APP(swap, uncurry), ENCARG(swap)) ENCARG(cons_app(compose, uncurry)) -> c14(APP(compose, uncurry), ENCARG(compose)) ENCARG(cons_app(const, uncurry)) -> c14(APP(const, uncurry), ENCARG(const)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry), ENCARG(listify)) ENCARG(cons_app(cons, uncurry)) -> c14(APP(cons, uncurry), ENCARG(cons)) ENCARG(cons_app(nil, uncurry)) -> c14(APP(nil, uncurry), ENCARG(nil)) ENCARG(cons_app(fold, uncurry)) -> c14(APP(fold, uncurry), ENCARG(fold)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry), ENCARG(sum)) ENCARG(cons_app(add, uncurry)) -> c14(APP(add, uncurry), ENCARG(add)) ENCARG(cons_app(0, uncurry)) -> c14(APP(0, uncurry), ENCARG(0)) ENCARG(cons_app(1, uncurry)) -> c14(APP(1, uncurry), ENCARG(1)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (83) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(cons, uncurry)) -> c14(APP(cons, uncurry), ENCARG(cons)) ENCARG(cons_app(swap, uncurry)) -> c14(APP(swap, uncurry), ENCARG(swap)) ENCARG(cons_app(apply, uncurry)) -> c14(APP(apply, uncurry), ENCARG(apply)) ENCARG(cons_app(nil, uncurry)) -> c14(APP(nil, uncurry), ENCARG(nil)) ENCARG(cons_app(1, uncurry)) -> c14(APP(1, uncurry), ENCARG(1)) ENCARG(cons_app(compose, uncurry)) -> c14(APP(compose, uncurry), ENCARG(compose)) ENCARG(cons_app(0, uncurry)) -> c14(APP(0, uncurry), ENCARG(0)) ENCARG(cons_app(add, uncurry)) -> c14(APP(add, uncurry), ENCARG(add)) ENCARG(cons_app(const, uncurry)) -> c14(APP(const, uncurry), ENCARG(const)) ENCARG(cons_app(fold, uncurry)) -> c14(APP(fold, uncurry), ENCARG(fold)) ENCARG(cons_app(uncurry, uncurry)) -> c14(APP(uncurry, uncurry), ENCARG(uncurry)) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry), ENCARG(id)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry), ENCARG(listify)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry), ENCARG(sum)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (85) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (87) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, swap)) -> c14(APP(encArg(x0), swap), ENCARG(x0)) by ENCARG(cons_app(apply, swap)) -> c14(APP(apply, swap), ENCARG(apply)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap), ENCARG(id)) ENCARG(cons_app(uncurry, swap)) -> c14(APP(uncurry, swap), ENCARG(uncurry)) ENCARG(cons_app(swap, swap)) -> c14(APP(swap, swap), ENCARG(swap)) ENCARG(cons_app(compose, swap)) -> c14(APP(compose, swap), ENCARG(compose)) ENCARG(cons_app(const, swap)) -> c14(APP(const, swap), ENCARG(const)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap), ENCARG(listify)) ENCARG(cons_app(cons, swap)) -> c14(APP(cons, swap), ENCARG(cons)) ENCARG(cons_app(nil, swap)) -> c14(APP(nil, swap), ENCARG(nil)) ENCARG(cons_app(fold, swap)) -> c14(APP(fold, swap), ENCARG(fold)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap), ENCARG(sum)) ENCARG(cons_app(add, swap)) -> c14(APP(add, swap), ENCARG(add)) ENCARG(cons_app(0, swap)) -> c14(APP(0, swap), ENCARG(0)) ENCARG(cons_app(1, swap)) -> c14(APP(1, swap), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), swap)) -> c14(APP(app(encArg(z0), encArg(z1)), swap), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap), ENCARG(cons_length)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(apply, swap)) -> c14(APP(apply, swap), ENCARG(apply)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap), ENCARG(id)) ENCARG(cons_app(uncurry, swap)) -> c14(APP(uncurry, swap), ENCARG(uncurry)) ENCARG(cons_app(swap, swap)) -> c14(APP(swap, swap), ENCARG(swap)) ENCARG(cons_app(compose, swap)) -> c14(APP(compose, swap), ENCARG(compose)) ENCARG(cons_app(const, swap)) -> c14(APP(const, swap), ENCARG(const)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap), ENCARG(listify)) ENCARG(cons_app(cons, swap)) -> c14(APP(cons, swap), ENCARG(cons)) ENCARG(cons_app(nil, swap)) -> c14(APP(nil, swap), ENCARG(nil)) ENCARG(cons_app(fold, swap)) -> c14(APP(fold, swap), ENCARG(fold)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap), ENCARG(sum)) ENCARG(cons_app(add, swap)) -> c14(APP(add, swap), ENCARG(add)) ENCARG(cons_app(0, swap)) -> c14(APP(0, swap), ENCARG(0)) ENCARG(cons_app(1, swap)) -> c14(APP(1, swap), ENCARG(1)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (89) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(add, swap)) -> c14(APP(add, swap), ENCARG(add)) ENCARG(cons_app(uncurry, swap)) -> c14(APP(uncurry, swap), ENCARG(uncurry)) ENCARG(cons_app(nil, swap)) -> c14(APP(nil, swap), ENCARG(nil)) ENCARG(cons_app(cons, swap)) -> c14(APP(cons, swap), ENCARG(cons)) ENCARG(cons_app(swap, swap)) -> c14(APP(swap, swap), ENCARG(swap)) ENCARG(cons_app(1, swap)) -> c14(APP(1, swap), ENCARG(1)) ENCARG(cons_app(0, swap)) -> c14(APP(0, swap), ENCARG(0)) ENCARG(cons_app(apply, swap)) -> c14(APP(apply, swap), ENCARG(apply)) ENCARG(cons_app(fold, swap)) -> c14(APP(fold, swap), ENCARG(fold)) ENCARG(cons_app(const, swap)) -> c14(APP(const, swap), ENCARG(const)) ENCARG(cons_app(compose, swap)) -> c14(APP(compose, swap), ENCARG(compose)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap), ENCARG(id)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap), ENCARG(listify)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap), ENCARG(sum)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (91) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, compose)) -> c14(APP(encArg(x0), compose), ENCARG(x0)) by ENCARG(cons_app(apply, compose)) -> c14(APP(apply, compose), ENCARG(apply)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose), ENCARG(id)) ENCARG(cons_app(uncurry, compose)) -> c14(APP(uncurry, compose), ENCARG(uncurry)) ENCARG(cons_app(swap, compose)) -> c14(APP(swap, compose), ENCARG(swap)) ENCARG(cons_app(compose, compose)) -> c14(APP(compose, compose), ENCARG(compose)) ENCARG(cons_app(const, compose)) -> c14(APP(const, compose), ENCARG(const)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose), ENCARG(listify)) ENCARG(cons_app(cons, compose)) -> c14(APP(cons, compose), ENCARG(cons)) ENCARG(cons_app(nil, compose)) -> c14(APP(nil, compose), ENCARG(nil)) ENCARG(cons_app(fold, compose)) -> c14(APP(fold, compose), ENCARG(fold)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose), ENCARG(sum)) ENCARG(cons_app(add, compose)) -> c14(APP(add, compose), ENCARG(add)) ENCARG(cons_app(0, compose)) -> c14(APP(0, compose), ENCARG(0)) ENCARG(cons_app(1, compose)) -> c14(APP(1, compose), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), compose)) -> c14(APP(app(encArg(z0), encArg(z1)), compose), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose), ENCARG(cons_length)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(apply, compose)) -> c14(APP(apply, compose), ENCARG(apply)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose), ENCARG(id)) ENCARG(cons_app(uncurry, compose)) -> c14(APP(uncurry, compose), ENCARG(uncurry)) ENCARG(cons_app(swap, compose)) -> c14(APP(swap, compose), ENCARG(swap)) ENCARG(cons_app(compose, compose)) -> c14(APP(compose, compose), ENCARG(compose)) ENCARG(cons_app(const, compose)) -> c14(APP(const, compose), ENCARG(const)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose), ENCARG(listify)) ENCARG(cons_app(cons, compose)) -> c14(APP(cons, compose), ENCARG(cons)) ENCARG(cons_app(nil, compose)) -> c14(APP(nil, compose), ENCARG(nil)) ENCARG(cons_app(fold, compose)) -> c14(APP(fold, compose), ENCARG(fold)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose), ENCARG(sum)) ENCARG(cons_app(add, compose)) -> c14(APP(add, compose), ENCARG(add)) ENCARG(cons_app(0, compose)) -> c14(APP(0, compose), ENCARG(0)) ENCARG(cons_app(1, compose)) -> c14(APP(1, compose), ENCARG(1)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (95) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(apply, compose)) -> c14(APP(apply, compose), ENCARG(apply)) ENCARG(cons_app(0, compose)) -> c14(APP(0, compose), ENCARG(0)) ENCARG(cons_app(const, compose)) -> c14(APP(const, compose), ENCARG(const)) ENCARG(cons_app(add, compose)) -> c14(APP(add, compose), ENCARG(add)) ENCARG(cons_app(cons, compose)) -> c14(APP(cons, compose), ENCARG(cons)) ENCARG(cons_app(swap, compose)) -> c14(APP(swap, compose), ENCARG(swap)) ENCARG(cons_app(uncurry, compose)) -> c14(APP(uncurry, compose), ENCARG(uncurry)) ENCARG(cons_app(1, compose)) -> c14(APP(1, compose), ENCARG(1)) ENCARG(cons_app(fold, compose)) -> c14(APP(fold, compose), ENCARG(fold)) ENCARG(cons_app(compose, compose)) -> c14(APP(compose, compose), ENCARG(compose)) ENCARG(cons_app(nil, compose)) -> c14(APP(nil, compose), ENCARG(nil)) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose), ENCARG(id)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose), ENCARG(listify)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose), ENCARG(sum)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (97) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (99) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, const)) -> c14(APP(encArg(x0), const), ENCARG(x0)) by ENCARG(cons_app(apply, const)) -> c14(APP(apply, const), ENCARG(apply)) ENCARG(cons_app(id, const)) -> c14(APP(id, const), ENCARG(id)) ENCARG(cons_app(uncurry, const)) -> c14(APP(uncurry, const), ENCARG(uncurry)) ENCARG(cons_app(swap, const)) -> c14(APP(swap, const), ENCARG(swap)) ENCARG(cons_app(compose, const)) -> c14(APP(compose, const), ENCARG(compose)) ENCARG(cons_app(const, const)) -> c14(APP(const, const), ENCARG(const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const), ENCARG(listify)) ENCARG(cons_app(cons, const)) -> c14(APP(cons, const), ENCARG(cons)) ENCARG(cons_app(nil, const)) -> c14(APP(nil, const), ENCARG(nil)) ENCARG(cons_app(fold, const)) -> c14(APP(fold, const), ENCARG(fold)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const), ENCARG(sum)) ENCARG(cons_app(add, const)) -> c14(APP(add, const), ENCARG(add)) ENCARG(cons_app(0, const)) -> c14(APP(0, const), ENCARG(0)) ENCARG(cons_app(1, const)) -> c14(APP(1, const), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), const)) -> c14(APP(app(encArg(z0), encArg(z1)), const), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const), ENCARG(cons_length)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(apply, const)) -> c14(APP(apply, const), ENCARG(apply)) ENCARG(cons_app(id, const)) -> c14(APP(id, const), ENCARG(id)) ENCARG(cons_app(uncurry, const)) -> c14(APP(uncurry, const), ENCARG(uncurry)) ENCARG(cons_app(swap, const)) -> c14(APP(swap, const), ENCARG(swap)) ENCARG(cons_app(compose, const)) -> c14(APP(compose, const), ENCARG(compose)) ENCARG(cons_app(const, const)) -> c14(APP(const, const), ENCARG(const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const), ENCARG(listify)) ENCARG(cons_app(cons, const)) -> c14(APP(cons, const), ENCARG(cons)) ENCARG(cons_app(nil, const)) -> c14(APP(nil, const), ENCARG(nil)) ENCARG(cons_app(fold, const)) -> c14(APP(fold, const), ENCARG(fold)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const), ENCARG(sum)) ENCARG(cons_app(add, const)) -> c14(APP(add, const), ENCARG(add)) ENCARG(cons_app(0, const)) -> c14(APP(0, const), ENCARG(0)) ENCARG(cons_app(1, const)) -> c14(APP(1, const), ENCARG(1)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (101) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(nil, const)) -> c14(APP(nil, const), ENCARG(nil)) ENCARG(cons_app(apply, const)) -> c14(APP(apply, const), ENCARG(apply)) ENCARG(cons_app(0, const)) -> c14(APP(0, const), ENCARG(0)) ENCARG(cons_app(compose, const)) -> c14(APP(compose, const), ENCARG(compose)) ENCARG(cons_app(add, const)) -> c14(APP(add, const), ENCARG(add)) ENCARG(cons_app(cons, const)) -> c14(APP(cons, const), ENCARG(cons)) ENCARG(cons_app(swap, const)) -> c14(APP(swap, const), ENCARG(swap)) ENCARG(cons_app(1, const)) -> c14(APP(1, const), ENCARG(1)) ENCARG(cons_app(fold, const)) -> c14(APP(fold, const), ENCARG(fold)) ENCARG(cons_app(uncurry, const)) -> c14(APP(uncurry, const), ENCARG(uncurry)) ENCARG(cons_app(const, const)) -> c14(APP(const, const), ENCARG(const)) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const), ENCARG(id)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const), ENCARG(listify)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const), ENCARG(sum)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, listify)) -> c14(APP(encArg(x0), listify), ENCARG(x0)) by ENCARG(cons_app(apply, listify)) -> c14(APP(apply, listify), ENCARG(apply)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify), ENCARG(id)) ENCARG(cons_app(uncurry, listify)) -> c14(APP(uncurry, listify), ENCARG(uncurry)) ENCARG(cons_app(swap, listify)) -> c14(APP(swap, listify), ENCARG(swap)) ENCARG(cons_app(compose, listify)) -> c14(APP(compose, listify), ENCARG(compose)) ENCARG(cons_app(const, listify)) -> c14(APP(const, listify), ENCARG(const)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify), ENCARG(listify)) ENCARG(cons_app(cons, listify)) -> c14(APP(cons, listify), ENCARG(cons)) ENCARG(cons_app(nil, listify)) -> c14(APP(nil, listify), ENCARG(nil)) ENCARG(cons_app(fold, listify)) -> c14(APP(fold, listify), ENCARG(fold)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify), ENCARG(sum)) ENCARG(cons_app(add, listify)) -> c14(APP(add, listify), ENCARG(add)) ENCARG(cons_app(0, listify)) -> c14(APP(0, listify), ENCARG(0)) ENCARG(cons_app(1, listify)) -> c14(APP(1, listify), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), listify)) -> c14(APP(app(encArg(z0), encArg(z1)), listify), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify), ENCARG(cons_length)) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(apply, listify)) -> c14(APP(apply, listify), ENCARG(apply)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify), ENCARG(id)) ENCARG(cons_app(uncurry, listify)) -> c14(APP(uncurry, listify), ENCARG(uncurry)) ENCARG(cons_app(swap, listify)) -> c14(APP(swap, listify), ENCARG(swap)) ENCARG(cons_app(compose, listify)) -> c14(APP(compose, listify), ENCARG(compose)) ENCARG(cons_app(const, listify)) -> c14(APP(const, listify), ENCARG(const)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify), ENCARG(listify)) ENCARG(cons_app(cons, listify)) -> c14(APP(cons, listify), ENCARG(cons)) ENCARG(cons_app(nil, listify)) -> c14(APP(nil, listify), ENCARG(nil)) ENCARG(cons_app(fold, listify)) -> c14(APP(fold, listify), ENCARG(fold)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify), ENCARG(sum)) ENCARG(cons_app(add, listify)) -> c14(APP(add, listify), ENCARG(add)) ENCARG(cons_app(0, listify)) -> c14(APP(0, listify), ENCARG(0)) ENCARG(cons_app(1, listify)) -> c14(APP(1, listify), ENCARG(1)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (107) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(fold, listify)) -> c14(APP(fold, listify), ENCARG(fold)) ENCARG(cons_app(nil, listify)) -> c14(APP(nil, listify), ENCARG(nil)) ENCARG(cons_app(1, listify)) -> c14(APP(1, listify), ENCARG(1)) ENCARG(cons_app(0, listify)) -> c14(APP(0, listify), ENCARG(0)) ENCARG(cons_app(uncurry, listify)) -> c14(APP(uncurry, listify), ENCARG(uncurry)) ENCARG(cons_app(add, listify)) -> c14(APP(add, listify), ENCARG(add)) ENCARG(cons_app(cons, listify)) -> c14(APP(cons, listify), ENCARG(cons)) ENCARG(cons_app(swap, listify)) -> c14(APP(swap, listify), ENCARG(swap)) ENCARG(cons_app(const, listify)) -> c14(APP(const, listify), ENCARG(const)) ENCARG(cons_app(compose, listify)) -> c14(APP(compose, listify), ENCARG(compose)) ENCARG(cons_app(apply, listify)) -> c14(APP(apply, listify), ENCARG(apply)) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify), ENCARG(id)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify), ENCARG(listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify), ENCARG(sum)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, cons)) -> c14(APP(encArg(x0), cons), ENCARG(x0)) by ENCARG(cons_app(apply, cons)) -> c14(APP(apply, cons), ENCARG(apply)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons), ENCARG(id)) ENCARG(cons_app(uncurry, cons)) -> c14(APP(uncurry, cons), ENCARG(uncurry)) ENCARG(cons_app(swap, cons)) -> c14(APP(swap, cons), ENCARG(swap)) ENCARG(cons_app(compose, cons)) -> c14(APP(compose, cons), ENCARG(compose)) ENCARG(cons_app(const, cons)) -> c14(APP(const, cons), ENCARG(const)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons), ENCARG(listify)) ENCARG(cons_app(cons, cons)) -> c14(APP(cons, cons), ENCARG(cons)) ENCARG(cons_app(nil, cons)) -> c14(APP(nil, cons), ENCARG(nil)) ENCARG(cons_app(fold, cons)) -> c14(APP(fold, cons), ENCARG(fold)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons), ENCARG(sum)) ENCARG(cons_app(add, cons)) -> c14(APP(add, cons), ENCARG(add)) ENCARG(cons_app(0, cons)) -> c14(APP(0, cons), ENCARG(0)) ENCARG(cons_app(1, cons)) -> c14(APP(1, cons), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), cons)) -> c14(APP(app(encArg(z0), encArg(z1)), cons), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons), ENCARG(cons_length)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(apply, cons)) -> c14(APP(apply, cons), ENCARG(apply)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons), ENCARG(id)) ENCARG(cons_app(uncurry, cons)) -> c14(APP(uncurry, cons), ENCARG(uncurry)) ENCARG(cons_app(swap, cons)) -> c14(APP(swap, cons), ENCARG(swap)) ENCARG(cons_app(compose, cons)) -> c14(APP(compose, cons), ENCARG(compose)) ENCARG(cons_app(const, cons)) -> c14(APP(const, cons), ENCARG(const)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons), ENCARG(listify)) ENCARG(cons_app(cons, cons)) -> c14(APP(cons, cons), ENCARG(cons)) ENCARG(cons_app(nil, cons)) -> c14(APP(nil, cons), ENCARG(nil)) ENCARG(cons_app(fold, cons)) -> c14(APP(fold, cons), ENCARG(fold)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons), ENCARG(sum)) ENCARG(cons_app(add, cons)) -> c14(APP(add, cons), ENCARG(add)) ENCARG(cons_app(0, cons)) -> c14(APP(0, cons), ENCARG(0)) ENCARG(cons_app(1, cons)) -> c14(APP(1, cons), ENCARG(1)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (113) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(0, cons)) -> c14(APP(0, cons), ENCARG(0)) ENCARG(cons_app(const, cons)) -> c14(APP(const, cons), ENCARG(const)) ENCARG(cons_app(compose, cons)) -> c14(APP(compose, cons), ENCARG(compose)) ENCARG(cons_app(uncurry, cons)) -> c14(APP(uncurry, cons), ENCARG(uncurry)) ENCARG(cons_app(cons, cons)) -> c14(APP(cons, cons), ENCARG(cons)) ENCARG(cons_app(swap, cons)) -> c14(APP(swap, cons), ENCARG(swap)) ENCARG(cons_app(fold, cons)) -> c14(APP(fold, cons), ENCARG(fold)) ENCARG(cons_app(nil, cons)) -> c14(APP(nil, cons), ENCARG(nil)) ENCARG(cons_app(apply, cons)) -> c14(APP(apply, cons), ENCARG(apply)) ENCARG(cons_app(1, cons)) -> c14(APP(1, cons), ENCARG(1)) ENCARG(cons_app(add, cons)) -> c14(APP(add, cons), ENCARG(add)) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons), ENCARG(id)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons), ENCARG(listify)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons), ENCARG(sum)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (115) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, nil)) -> c14(APP(encArg(x0), nil), ENCARG(x0)) by ENCARG(cons_app(apply, nil)) -> c14(APP(apply, nil), ENCARG(apply)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil), ENCARG(id)) ENCARG(cons_app(uncurry, nil)) -> c14(APP(uncurry, nil), ENCARG(uncurry)) ENCARG(cons_app(swap, nil)) -> c14(APP(swap, nil), ENCARG(swap)) ENCARG(cons_app(compose, nil)) -> c14(APP(compose, nil), ENCARG(compose)) ENCARG(cons_app(const, nil)) -> c14(APP(const, nil), ENCARG(const)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil), ENCARG(listify)) ENCARG(cons_app(cons, nil)) -> c14(APP(cons, nil), ENCARG(cons)) ENCARG(cons_app(nil, nil)) -> c14(APP(nil, nil), ENCARG(nil)) ENCARG(cons_app(fold, nil)) -> c14(APP(fold, nil), ENCARG(fold)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil), ENCARG(sum)) ENCARG(cons_app(add, nil)) -> c14(APP(add, nil), ENCARG(add)) ENCARG(cons_app(0, nil)) -> c14(APP(0, nil), ENCARG(0)) ENCARG(cons_app(1, nil)) -> c14(APP(1, nil), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), nil)) -> c14(APP(app(encArg(z0), encArg(z1)), nil), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil), ENCARG(cons_length)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(apply, nil)) -> c14(APP(apply, nil), ENCARG(apply)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil), ENCARG(id)) ENCARG(cons_app(uncurry, nil)) -> c14(APP(uncurry, nil), ENCARG(uncurry)) ENCARG(cons_app(swap, nil)) -> c14(APP(swap, nil), ENCARG(swap)) ENCARG(cons_app(compose, nil)) -> c14(APP(compose, nil), ENCARG(compose)) ENCARG(cons_app(const, nil)) -> c14(APP(const, nil), ENCARG(const)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil), ENCARG(listify)) ENCARG(cons_app(cons, nil)) -> c14(APP(cons, nil), ENCARG(cons)) ENCARG(cons_app(nil, nil)) -> c14(APP(nil, nil), ENCARG(nil)) ENCARG(cons_app(fold, nil)) -> c14(APP(fold, nil), ENCARG(fold)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil), ENCARG(sum)) ENCARG(cons_app(add, nil)) -> c14(APP(add, nil), ENCARG(add)) ENCARG(cons_app(0, nil)) -> c14(APP(0, nil), ENCARG(0)) ENCARG(cons_app(1, nil)) -> c14(APP(1, nil), ENCARG(1)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (119) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(1, nil)) -> c14(APP(1, nil), ENCARG(1)) ENCARG(cons_app(0, nil)) -> c14(APP(0, nil), ENCARG(0)) ENCARG(cons_app(compose, nil)) -> c14(APP(compose, nil), ENCARG(compose)) ENCARG(cons_app(uncurry, nil)) -> c14(APP(uncurry, nil), ENCARG(uncurry)) ENCARG(cons_app(const, nil)) -> c14(APP(const, nil), ENCARG(const)) ENCARG(cons_app(nil, nil)) -> c14(APP(nil, nil), ENCARG(nil)) ENCARG(cons_app(cons, nil)) -> c14(APP(cons, nil), ENCARG(cons)) ENCARG(cons_app(swap, nil)) -> c14(APP(swap, nil), ENCARG(swap)) ENCARG(cons_app(add, nil)) -> c14(APP(add, nil), ENCARG(add)) ENCARG(cons_app(fold, nil)) -> c14(APP(fold, nil), ENCARG(fold)) ENCARG(cons_app(apply, nil)) -> c14(APP(apply, nil), ENCARG(apply)) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil), ENCARG(id)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil), ENCARG(listify)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil), ENCARG(sum)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, fold)) -> c14(APP(encArg(x0), fold), ENCARG(x0)) by ENCARG(cons_app(apply, fold)) -> c14(APP(apply, fold), ENCARG(apply)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold), ENCARG(id)) ENCARG(cons_app(uncurry, fold)) -> c14(APP(uncurry, fold), ENCARG(uncurry)) ENCARG(cons_app(swap, fold)) -> c14(APP(swap, fold), ENCARG(swap)) ENCARG(cons_app(compose, fold)) -> c14(APP(compose, fold), ENCARG(compose)) ENCARG(cons_app(const, fold)) -> c14(APP(const, fold), ENCARG(const)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold), ENCARG(listify)) ENCARG(cons_app(cons, fold)) -> c14(APP(cons, fold), ENCARG(cons)) ENCARG(cons_app(nil, fold)) -> c14(APP(nil, fold), ENCARG(nil)) ENCARG(cons_app(fold, fold)) -> c14(APP(fold, fold), ENCARG(fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold), ENCARG(sum)) ENCARG(cons_app(add, fold)) -> c14(APP(add, fold), ENCARG(add)) ENCARG(cons_app(0, fold)) -> c14(APP(0, fold), ENCARG(0)) ENCARG(cons_app(1, fold)) -> c14(APP(1, fold), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), fold)) -> c14(APP(app(encArg(z0), encArg(z1)), fold), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold), ENCARG(cons_length)) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(apply, fold)) -> c14(APP(apply, fold), ENCARG(apply)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold), ENCARG(id)) ENCARG(cons_app(uncurry, fold)) -> c14(APP(uncurry, fold), ENCARG(uncurry)) ENCARG(cons_app(swap, fold)) -> c14(APP(swap, fold), ENCARG(swap)) ENCARG(cons_app(compose, fold)) -> c14(APP(compose, fold), ENCARG(compose)) ENCARG(cons_app(const, fold)) -> c14(APP(const, fold), ENCARG(const)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold), ENCARG(listify)) ENCARG(cons_app(cons, fold)) -> c14(APP(cons, fold), ENCARG(cons)) ENCARG(cons_app(nil, fold)) -> c14(APP(nil, fold), ENCARG(nil)) ENCARG(cons_app(fold, fold)) -> c14(APP(fold, fold), ENCARG(fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold), ENCARG(sum)) ENCARG(cons_app(add, fold)) -> c14(APP(add, fold), ENCARG(add)) ENCARG(cons_app(0, fold)) -> c14(APP(0, fold), ENCARG(0)) ENCARG(cons_app(1, fold)) -> c14(APP(1, fold), ENCARG(1)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (125) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(nil, fold)) -> c14(APP(nil, fold), ENCARG(nil)) ENCARG(cons_app(cons, fold)) -> c14(APP(cons, fold), ENCARG(cons)) ENCARG(cons_app(swap, fold)) -> c14(APP(swap, fold), ENCARG(swap)) ENCARG(cons_app(compose, fold)) -> c14(APP(compose, fold), ENCARG(compose)) ENCARG(cons_app(uncurry, fold)) -> c14(APP(uncurry, fold), ENCARG(uncurry)) ENCARG(cons_app(add, fold)) -> c14(APP(add, fold), ENCARG(add)) ENCARG(cons_app(fold, fold)) -> c14(APP(fold, fold), ENCARG(fold)) ENCARG(cons_app(const, fold)) -> c14(APP(const, fold), ENCARG(const)) ENCARG(cons_app(1, fold)) -> c14(APP(1, fold), ENCARG(1)) ENCARG(cons_app(0, fold)) -> c14(APP(0, fold), ENCARG(0)) ENCARG(cons_app(apply, fold)) -> c14(APP(apply, fold), ENCARG(apply)) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold), ENCARG(id)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold), ENCARG(listify)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold), ENCARG(sum)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (127) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, sum)) -> c14(APP(encArg(x0), sum), ENCARG(x0)) by ENCARG(cons_app(apply, sum)) -> c14(APP(apply, sum), ENCARG(apply)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum), ENCARG(id)) ENCARG(cons_app(uncurry, sum)) -> c14(APP(uncurry, sum), ENCARG(uncurry)) ENCARG(cons_app(swap, sum)) -> c14(APP(swap, sum), ENCARG(swap)) ENCARG(cons_app(compose, sum)) -> c14(APP(compose, sum), ENCARG(compose)) ENCARG(cons_app(const, sum)) -> c14(APP(const, sum), ENCARG(const)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum), ENCARG(listify)) ENCARG(cons_app(cons, sum)) -> c14(APP(cons, sum), ENCARG(cons)) ENCARG(cons_app(nil, sum)) -> c14(APP(nil, sum), ENCARG(nil)) ENCARG(cons_app(fold, sum)) -> c14(APP(fold, sum), ENCARG(fold)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum), ENCARG(sum)) ENCARG(cons_app(add, sum)) -> c14(APP(add, sum), ENCARG(add)) ENCARG(cons_app(0, sum)) -> c14(APP(0, sum), ENCARG(0)) ENCARG(cons_app(1, sum)) -> c14(APP(1, sum), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), sum)) -> c14(APP(app(encArg(z0), encArg(z1)), sum), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum), ENCARG(cons_length)) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(apply, sum)) -> c14(APP(apply, sum), ENCARG(apply)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum), ENCARG(id)) ENCARG(cons_app(uncurry, sum)) -> c14(APP(uncurry, sum), ENCARG(uncurry)) ENCARG(cons_app(swap, sum)) -> c14(APP(swap, sum), ENCARG(swap)) ENCARG(cons_app(compose, sum)) -> c14(APP(compose, sum), ENCARG(compose)) ENCARG(cons_app(const, sum)) -> c14(APP(const, sum), ENCARG(const)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum), ENCARG(listify)) ENCARG(cons_app(cons, sum)) -> c14(APP(cons, sum), ENCARG(cons)) ENCARG(cons_app(nil, sum)) -> c14(APP(nil, sum), ENCARG(nil)) ENCARG(cons_app(fold, sum)) -> c14(APP(fold, sum), ENCARG(fold)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum), ENCARG(sum)) ENCARG(cons_app(add, sum)) -> c14(APP(add, sum), ENCARG(add)) ENCARG(cons_app(0, sum)) -> c14(APP(0, sum), ENCARG(0)) ENCARG(cons_app(1, sum)) -> c14(APP(1, sum), ENCARG(1)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (131) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(1, sum)) -> c14(APP(1, sum), ENCARG(1)) ENCARG(cons_app(const, sum)) -> c14(APP(const, sum), ENCARG(const)) ENCARG(cons_app(apply, sum)) -> c14(APP(apply, sum), ENCARG(apply)) ENCARG(cons_app(cons, sum)) -> c14(APP(cons, sum), ENCARG(cons)) ENCARG(cons_app(compose, sum)) -> c14(APP(compose, sum), ENCARG(compose)) ENCARG(cons_app(swap, sum)) -> c14(APP(swap, sum), ENCARG(swap)) ENCARG(cons_app(add, sum)) -> c14(APP(add, sum), ENCARG(add)) ENCARG(cons_app(fold, sum)) -> c14(APP(fold, sum), ENCARG(fold)) ENCARG(cons_app(0, sum)) -> c14(APP(0, sum), ENCARG(0)) ENCARG(cons_app(nil, sum)) -> c14(APP(nil, sum), ENCARG(nil)) ENCARG(cons_app(uncurry, sum)) -> c14(APP(uncurry, sum), ENCARG(uncurry)) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum), ENCARG(id)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum), ENCARG(listify)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum), ENCARG(sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (133) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (135) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, add)) -> c14(APP(encArg(x0), add), ENCARG(x0)) by ENCARG(cons_app(apply, add)) -> c14(APP(apply, add), ENCARG(apply)) ENCARG(cons_app(id, add)) -> c14(APP(id, add), ENCARG(id)) ENCARG(cons_app(uncurry, add)) -> c14(APP(uncurry, add), ENCARG(uncurry)) ENCARG(cons_app(swap, add)) -> c14(APP(swap, add), ENCARG(swap)) ENCARG(cons_app(compose, add)) -> c14(APP(compose, add), ENCARG(compose)) ENCARG(cons_app(const, add)) -> c14(APP(const, add), ENCARG(const)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add), ENCARG(listify)) ENCARG(cons_app(cons, add)) -> c14(APP(cons, add), ENCARG(cons)) ENCARG(cons_app(nil, add)) -> c14(APP(nil, add), ENCARG(nil)) ENCARG(cons_app(fold, add)) -> c14(APP(fold, add), ENCARG(fold)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add), ENCARG(sum)) ENCARG(cons_app(add, add)) -> c14(APP(add, add), ENCARG(add)) ENCARG(cons_app(0, add)) -> c14(APP(0, add), ENCARG(0)) ENCARG(cons_app(1, add)) -> c14(APP(1, add), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), add)) -> c14(APP(app(encArg(z0), encArg(z1)), add), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add), ENCARG(cons_length)) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(apply, add)) -> c14(APP(apply, add), ENCARG(apply)) ENCARG(cons_app(id, add)) -> c14(APP(id, add), ENCARG(id)) ENCARG(cons_app(uncurry, add)) -> c14(APP(uncurry, add), ENCARG(uncurry)) ENCARG(cons_app(swap, add)) -> c14(APP(swap, add), ENCARG(swap)) ENCARG(cons_app(compose, add)) -> c14(APP(compose, add), ENCARG(compose)) ENCARG(cons_app(const, add)) -> c14(APP(const, add), ENCARG(const)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add), ENCARG(listify)) ENCARG(cons_app(cons, add)) -> c14(APP(cons, add), ENCARG(cons)) ENCARG(cons_app(nil, add)) -> c14(APP(nil, add), ENCARG(nil)) ENCARG(cons_app(fold, add)) -> c14(APP(fold, add), ENCARG(fold)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add), ENCARG(sum)) ENCARG(cons_app(add, add)) -> c14(APP(add, add), ENCARG(add)) ENCARG(cons_app(0, add)) -> c14(APP(0, add), ENCARG(0)) ENCARG(cons_app(1, add)) -> c14(APP(1, add), ENCARG(1)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (137) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(cons, add)) -> c14(APP(cons, add), ENCARG(cons)) ENCARG(cons_app(swap, add)) -> c14(APP(swap, add), ENCARG(swap)) ENCARG(cons_app(0, add)) -> c14(APP(0, add), ENCARG(0)) ENCARG(cons_app(uncurry, add)) -> c14(APP(uncurry, add), ENCARG(uncurry)) ENCARG(cons_app(nil, add)) -> c14(APP(nil, add), ENCARG(nil)) ENCARG(cons_app(1, add)) -> c14(APP(1, add), ENCARG(1)) ENCARG(cons_app(compose, add)) -> c14(APP(compose, add), ENCARG(compose)) ENCARG(cons_app(add, add)) -> c14(APP(add, add), ENCARG(add)) ENCARG(cons_app(apply, add)) -> c14(APP(apply, add), ENCARG(apply)) ENCARG(cons_app(fold, add)) -> c14(APP(fold, add), ENCARG(fold)) ENCARG(cons_app(const, add)) -> c14(APP(const, add), ENCARG(const)) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add), ENCARG(id)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add), ENCARG(listify)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add), ENCARG(sum)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (139) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (141) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, 0)) -> c14(APP(encArg(x0), 0), ENCARG(x0)) by ENCARG(cons_app(apply, 0)) -> c14(APP(apply, 0), ENCARG(apply)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0), ENCARG(id)) ENCARG(cons_app(uncurry, 0)) -> c14(APP(uncurry, 0), ENCARG(uncurry)) ENCARG(cons_app(swap, 0)) -> c14(APP(swap, 0), ENCARG(swap)) ENCARG(cons_app(compose, 0)) -> c14(APP(compose, 0), ENCARG(compose)) ENCARG(cons_app(const, 0)) -> c14(APP(const, 0), ENCARG(const)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0), ENCARG(listify)) ENCARG(cons_app(cons, 0)) -> c14(APP(cons, 0), ENCARG(cons)) ENCARG(cons_app(nil, 0)) -> c14(APP(nil, 0), ENCARG(nil)) ENCARG(cons_app(fold, 0)) -> c14(APP(fold, 0), ENCARG(fold)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0), ENCARG(sum)) ENCARG(cons_app(add, 0)) -> c14(APP(add, 0), ENCARG(add)) ENCARG(cons_app(0, 0)) -> c14(APP(0, 0), ENCARG(0)) ENCARG(cons_app(1, 0)) -> c14(APP(1, 0), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), 0)) -> c14(APP(app(encArg(z0), encArg(z1)), 0), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0), ENCARG(cons_length)) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(apply, 0)) -> c14(APP(apply, 0), ENCARG(apply)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0), ENCARG(id)) ENCARG(cons_app(uncurry, 0)) -> c14(APP(uncurry, 0), ENCARG(uncurry)) ENCARG(cons_app(swap, 0)) -> c14(APP(swap, 0), ENCARG(swap)) ENCARG(cons_app(compose, 0)) -> c14(APP(compose, 0), ENCARG(compose)) ENCARG(cons_app(const, 0)) -> c14(APP(const, 0), ENCARG(const)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0), ENCARG(listify)) ENCARG(cons_app(cons, 0)) -> c14(APP(cons, 0), ENCARG(cons)) ENCARG(cons_app(nil, 0)) -> c14(APP(nil, 0), ENCARG(nil)) ENCARG(cons_app(fold, 0)) -> c14(APP(fold, 0), ENCARG(fold)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0), ENCARG(sum)) ENCARG(cons_app(add, 0)) -> c14(APP(add, 0), ENCARG(add)) ENCARG(cons_app(0, 0)) -> c14(APP(0, 0), ENCARG(0)) ENCARG(cons_app(1, 0)) -> c14(APP(1, 0), ENCARG(1)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (143) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(fold, 0)) -> c14(APP(fold, 0), ENCARG(fold)) ENCARG(cons_app(apply, 0)) -> c14(APP(apply, 0), ENCARG(apply)) ENCARG(cons_app(const, 0)) -> c14(APP(const, 0), ENCARG(const)) ENCARG(cons_app(cons, 0)) -> c14(APP(cons, 0), ENCARG(cons)) ENCARG(cons_app(swap, 0)) -> c14(APP(swap, 0), ENCARG(swap)) ENCARG(cons_app(1, 0)) -> c14(APP(1, 0), ENCARG(1)) ENCARG(cons_app(compose, 0)) -> c14(APP(compose, 0), ENCARG(compose)) ENCARG(cons_app(add, 0)) -> c14(APP(add, 0), ENCARG(add)) ENCARG(cons_app(uncurry, 0)) -> c14(APP(uncurry, 0), ENCARG(uncurry)) ENCARG(cons_app(0, 0)) -> c14(APP(0, 0), ENCARG(0)) ENCARG(cons_app(nil, 0)) -> c14(APP(nil, 0), ENCARG(nil)) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0), ENCARG(id)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0), ENCARG(listify)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0), ENCARG(sum)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (145) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, 1)) -> c14(APP(encArg(x0), 1), ENCARG(x0)) by ENCARG(cons_app(apply, 1)) -> c14(APP(apply, 1), ENCARG(apply)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1), ENCARG(id)) ENCARG(cons_app(uncurry, 1)) -> c14(APP(uncurry, 1), ENCARG(uncurry)) ENCARG(cons_app(swap, 1)) -> c14(APP(swap, 1), ENCARG(swap)) ENCARG(cons_app(compose, 1)) -> c14(APP(compose, 1), ENCARG(compose)) ENCARG(cons_app(const, 1)) -> c14(APP(const, 1), ENCARG(const)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1), ENCARG(listify)) ENCARG(cons_app(cons, 1)) -> c14(APP(cons, 1), ENCARG(cons)) ENCARG(cons_app(nil, 1)) -> c14(APP(nil, 1), ENCARG(nil)) ENCARG(cons_app(fold, 1)) -> c14(APP(fold, 1), ENCARG(fold)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1), ENCARG(sum)) ENCARG(cons_app(add, 1)) -> c14(APP(add, 1), ENCARG(add)) ENCARG(cons_app(0, 1)) -> c14(APP(0, 1), ENCARG(0)) ENCARG(cons_app(1, 1)) -> c14(APP(1, 1), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), 1)) -> c14(APP(app(encArg(z0), encArg(z1)), 1), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1), ENCARG(cons_length)) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(apply, 1)) -> c14(APP(apply, 1), ENCARG(apply)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1), ENCARG(id)) ENCARG(cons_app(uncurry, 1)) -> c14(APP(uncurry, 1), ENCARG(uncurry)) ENCARG(cons_app(swap, 1)) -> c14(APP(swap, 1), ENCARG(swap)) ENCARG(cons_app(compose, 1)) -> c14(APP(compose, 1), ENCARG(compose)) ENCARG(cons_app(const, 1)) -> c14(APP(const, 1), ENCARG(const)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1), ENCARG(listify)) ENCARG(cons_app(cons, 1)) -> c14(APP(cons, 1), ENCARG(cons)) ENCARG(cons_app(nil, 1)) -> c14(APP(nil, 1), ENCARG(nil)) ENCARG(cons_app(fold, 1)) -> c14(APP(fold, 1), ENCARG(fold)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1), ENCARG(sum)) ENCARG(cons_app(add, 1)) -> c14(APP(add, 1), ENCARG(add)) ENCARG(cons_app(0, 1)) -> c14(APP(0, 1), ENCARG(0)) ENCARG(cons_app(1, 1)) -> c14(APP(1, 1), ENCARG(1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (149) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(cons, 1)) -> c14(APP(cons, 1), ENCARG(cons)) ENCARG(cons_app(swap, 1)) -> c14(APP(swap, 1), ENCARG(swap)) ENCARG(cons_app(add, 1)) -> c14(APP(add, 1), ENCARG(add)) ENCARG(cons_app(uncurry, 1)) -> c14(APP(uncurry, 1), ENCARG(uncurry)) ENCARG(cons_app(nil, 1)) -> c14(APP(nil, 1), ENCARG(nil)) ENCARG(cons_app(1, 1)) -> c14(APP(1, 1), ENCARG(1)) ENCARG(cons_app(apply, 1)) -> c14(APP(apply, 1), ENCARG(apply)) ENCARG(cons_app(fold, 1)) -> c14(APP(fold, 1), ENCARG(fold)) ENCARG(cons_app(0, 1)) -> c14(APP(0, 1), ENCARG(0)) ENCARG(cons_app(const, 1)) -> c14(APP(const, 1), ENCARG(const)) ENCARG(cons_app(compose, 1)) -> c14(APP(compose, 1), ENCARG(compose)) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1), ENCARG(id)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1), ENCARG(listify)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1), ENCARG(sum)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (151) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (153) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), append), ENCARG(x0)) by ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(apply, cons_append)) -> c14(APP(apply, append), ENCARG(apply)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append), ENCARG(id)) ENCARG(cons_app(uncurry, cons_append)) -> c14(APP(uncurry, append), ENCARG(uncurry)) ENCARG(cons_app(swap, cons_append)) -> c14(APP(swap, append), ENCARG(swap)) ENCARG(cons_app(compose, cons_append)) -> c14(APP(compose, append), ENCARG(compose)) ENCARG(cons_app(const, cons_append)) -> c14(APP(const, append), ENCARG(const)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append), ENCARG(listify)) ENCARG(cons_app(cons, cons_append)) -> c14(APP(cons, append), ENCARG(cons)) ENCARG(cons_app(nil, cons_append)) -> c14(APP(nil, append), ENCARG(nil)) ENCARG(cons_app(fold, cons_append)) -> c14(APP(fold, append), ENCARG(fold)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append), ENCARG(sum)) ENCARG(cons_app(add, cons_append)) -> c14(APP(add, append), ENCARG(add)) ENCARG(cons_app(0, cons_append)) -> c14(APP(0, append), ENCARG(0)) ENCARG(cons_app(1, cons_append)) -> c14(APP(1, append), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), cons_append)) -> c14(APP(app(encArg(z0), encArg(z1)), append), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append), ENCARG(cons_length)) ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(apply, cons_append)) -> c14(APP(apply, append), ENCARG(apply)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append), ENCARG(id)) ENCARG(cons_app(uncurry, cons_append)) -> c14(APP(uncurry, append), ENCARG(uncurry)) ENCARG(cons_app(swap, cons_append)) -> c14(APP(swap, append), ENCARG(swap)) ENCARG(cons_app(compose, cons_append)) -> c14(APP(compose, append), ENCARG(compose)) ENCARG(cons_app(const, cons_append)) -> c14(APP(const, append), ENCARG(const)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append), ENCARG(listify)) ENCARG(cons_app(cons, cons_append)) -> c14(APP(cons, append), ENCARG(cons)) ENCARG(cons_app(nil, cons_append)) -> c14(APP(nil, append), ENCARG(nil)) ENCARG(cons_app(fold, cons_append)) -> c14(APP(fold, append), ENCARG(fold)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append), ENCARG(sum)) ENCARG(cons_app(add, cons_append)) -> c14(APP(add, append), ENCARG(add)) ENCARG(cons_app(0, cons_append)) -> c14(APP(0, append), ENCARG(0)) ENCARG(cons_app(1, cons_append)) -> c14(APP(1, append), ENCARG(1)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (155) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(fold, cons_append)) -> c14(APP(fold, append), ENCARG(fold)) ENCARG(cons_app(apply, cons_append)) -> c14(APP(apply, append), ENCARG(apply)) ENCARG(cons_app(cons, cons_append)) -> c14(APP(cons, append), ENCARG(cons)) ENCARG(cons_app(compose, cons_append)) -> c14(APP(compose, append), ENCARG(compose)) ENCARG(cons_app(uncurry, cons_append)) -> c14(APP(uncurry, append), ENCARG(uncurry)) ENCARG(cons_app(0, cons_append)) -> c14(APP(0, append), ENCARG(0)) ENCARG(cons_app(add, cons_append)) -> c14(APP(add, append), ENCARG(add)) ENCARG(cons_app(const, cons_append)) -> c14(APP(const, append), ENCARG(const)) ENCARG(cons_app(nil, cons_append)) -> c14(APP(nil, append), ENCARG(nil)) ENCARG(cons_app(1, cons_append)) -> c14(APP(1, append), ENCARG(1)) ENCARG(cons_app(swap, cons_append)) -> c14(APP(swap, append), ENCARG(swap)) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append), ENCARG(id)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append), ENCARG(listify)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append), ENCARG(sum)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (157) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (159) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), reverse), ENCARG(x0)) by ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(apply, cons_reverse)) -> c14(APP(apply, reverse), ENCARG(apply)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse), ENCARG(id)) ENCARG(cons_app(uncurry, cons_reverse)) -> c14(APP(uncurry, reverse), ENCARG(uncurry)) ENCARG(cons_app(swap, cons_reverse)) -> c14(APP(swap, reverse), ENCARG(swap)) ENCARG(cons_app(compose, cons_reverse)) -> c14(APP(compose, reverse), ENCARG(compose)) ENCARG(cons_app(const, cons_reverse)) -> c14(APP(const, reverse), ENCARG(const)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse), ENCARG(listify)) ENCARG(cons_app(cons, cons_reverse)) -> c14(APP(cons, reverse), ENCARG(cons)) ENCARG(cons_app(nil, cons_reverse)) -> c14(APP(nil, reverse), ENCARG(nil)) ENCARG(cons_app(fold, cons_reverse)) -> c14(APP(fold, reverse), ENCARG(fold)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse), ENCARG(sum)) ENCARG(cons_app(add, cons_reverse)) -> c14(APP(add, reverse), ENCARG(add)) ENCARG(cons_app(0, cons_reverse)) -> c14(APP(0, reverse), ENCARG(0)) ENCARG(cons_app(1, cons_reverse)) -> c14(APP(1, reverse), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), cons_reverse)) -> c14(APP(app(encArg(z0), encArg(z1)), reverse), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse), ENCARG(cons_length)) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(apply, cons_reverse)) -> c14(APP(apply, reverse), ENCARG(apply)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse), ENCARG(id)) ENCARG(cons_app(uncurry, cons_reverse)) -> c14(APP(uncurry, reverse), ENCARG(uncurry)) ENCARG(cons_app(swap, cons_reverse)) -> c14(APP(swap, reverse), ENCARG(swap)) ENCARG(cons_app(compose, cons_reverse)) -> c14(APP(compose, reverse), ENCARG(compose)) ENCARG(cons_app(const, cons_reverse)) -> c14(APP(const, reverse), ENCARG(const)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse), ENCARG(listify)) ENCARG(cons_app(cons, cons_reverse)) -> c14(APP(cons, reverse), ENCARG(cons)) ENCARG(cons_app(nil, cons_reverse)) -> c14(APP(nil, reverse), ENCARG(nil)) ENCARG(cons_app(fold, cons_reverse)) -> c14(APP(fold, reverse), ENCARG(fold)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse), ENCARG(sum)) ENCARG(cons_app(add, cons_reverse)) -> c14(APP(add, reverse), ENCARG(add)) ENCARG(cons_app(0, cons_reverse)) -> c14(APP(0, reverse), ENCARG(0)) ENCARG(cons_app(1, cons_reverse)) -> c14(APP(1, reverse), ENCARG(1)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (161) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(fold, cons_reverse)) -> c14(APP(fold, reverse), ENCARG(fold)) ENCARG(cons_app(compose, cons_reverse)) -> c14(APP(compose, reverse), ENCARG(compose)) ENCARG(cons_app(cons, cons_reverse)) -> c14(APP(cons, reverse), ENCARG(cons)) ENCARG(cons_app(swap, cons_reverse)) -> c14(APP(swap, reverse), ENCARG(swap)) ENCARG(cons_app(1, cons_reverse)) -> c14(APP(1, reverse), ENCARG(1)) ENCARG(cons_app(add, cons_reverse)) -> c14(APP(add, reverse), ENCARG(add)) ENCARG(cons_app(apply, cons_reverse)) -> c14(APP(apply, reverse), ENCARG(apply)) ENCARG(cons_app(nil, cons_reverse)) -> c14(APP(nil, reverse), ENCARG(nil)) ENCARG(cons_app(0, cons_reverse)) -> c14(APP(0, reverse), ENCARG(0)) ENCARG(cons_app(uncurry, cons_reverse)) -> c14(APP(uncurry, reverse), ENCARG(uncurry)) ENCARG(cons_app(const, cons_reverse)) -> c14(APP(const, reverse), ENCARG(const)) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse), ENCARG(id)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse), ENCARG(listify)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse), ENCARG(sum)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (163) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_2, c14_1, c_1, c14_3 ---------------------------------------- (165) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), length), ENCARG(x0)) by ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(apply, cons_length)) -> c14(APP(apply, length), ENCARG(apply)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length), ENCARG(id)) ENCARG(cons_app(uncurry, cons_length)) -> c14(APP(uncurry, length), ENCARG(uncurry)) ENCARG(cons_app(swap, cons_length)) -> c14(APP(swap, length), ENCARG(swap)) ENCARG(cons_app(compose, cons_length)) -> c14(APP(compose, length), ENCARG(compose)) ENCARG(cons_app(const, cons_length)) -> c14(APP(const, length), ENCARG(const)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length), ENCARG(listify)) ENCARG(cons_app(cons, cons_length)) -> c14(APP(cons, length), ENCARG(cons)) ENCARG(cons_app(nil, cons_length)) -> c14(APP(nil, length), ENCARG(nil)) ENCARG(cons_app(fold, cons_length)) -> c14(APP(fold, length), ENCARG(fold)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length), ENCARG(sum)) ENCARG(cons_app(add, cons_length)) -> c14(APP(add, length), ENCARG(add)) ENCARG(cons_app(0, cons_length)) -> c14(APP(0, length), ENCARG(0)) ENCARG(cons_app(1, cons_length)) -> c14(APP(1, length), ENCARG(1)) ENCARG(cons_app(cons_app(z0, z1), cons_length)) -> c14(APP(app(encArg(z0), encArg(z1)), length), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length), ENCARG(cons_length)) ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(apply, cons_length)) -> c14(APP(apply, length), ENCARG(apply)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length), ENCARG(id)) ENCARG(cons_app(uncurry, cons_length)) -> c14(APP(uncurry, length), ENCARG(uncurry)) ENCARG(cons_app(swap, cons_length)) -> c14(APP(swap, length), ENCARG(swap)) ENCARG(cons_app(compose, cons_length)) -> c14(APP(compose, length), ENCARG(compose)) ENCARG(cons_app(const, cons_length)) -> c14(APP(const, length), ENCARG(const)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length), ENCARG(listify)) ENCARG(cons_app(cons, cons_length)) -> c14(APP(cons, length), ENCARG(cons)) ENCARG(cons_app(nil, cons_length)) -> c14(APP(nil, length), ENCARG(nil)) ENCARG(cons_app(fold, cons_length)) -> c14(APP(fold, length), ENCARG(fold)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length), ENCARG(sum)) ENCARG(cons_app(add, cons_length)) -> c14(APP(add, length), ENCARG(add)) ENCARG(cons_app(0, cons_length)) -> c14(APP(0, length), ENCARG(0)) ENCARG(cons_app(1, cons_length)) -> c14(APP(1, length), ENCARG(1)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (167) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCARG(cons_app(apply, cons_length)) -> c14(APP(apply, length), ENCARG(apply)) ENCARG(cons_app(add, cons_length)) -> c14(APP(add, length), ENCARG(add)) ENCARG(cons_app(swap, cons_length)) -> c14(APP(swap, length), ENCARG(swap)) ENCARG(cons_app(nil, cons_length)) -> c14(APP(nil, length), ENCARG(nil)) ENCARG(cons_app(0, cons_length)) -> c14(APP(0, length), ENCARG(0)) ENCARG(cons_app(fold, cons_length)) -> c14(APP(fold, length), ENCARG(fold)) ENCARG(cons_app(uncurry, cons_length)) -> c14(APP(uncurry, length), ENCARG(uncurry)) ENCARG(cons_app(1, cons_length)) -> c14(APP(1, length), ENCARG(1)) ENCARG(cons_app(cons, cons_length)) -> c14(APP(cons, length), ENCARG(cons)) ENCARG(cons_app(const, cons_length)) -> c14(APP(const, length), ENCARG(const)) ENCARG(cons_app(compose, cons_length)) -> c14(APP(compose, length), ENCARG(compose)) ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length), ENCARG(id)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length), ENCARG(listify)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length), ENCARG(sum)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length), ENCARG(cons_length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (169) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (171) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(cons_append, x1)) -> c14(APP(append, encArg(x1)), ENCARG(x1)) by ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply), ENCARG(apply)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id), ENCARG(id)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry), ENCARG(uncurry)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap), ENCARG(swap)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose), ENCARG(compose)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const), ENCARG(const)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify), ENCARG(listify)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons), ENCARG(cons)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil), ENCARG(nil)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold), ENCARG(fold)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum), ENCARG(sum)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add), ENCARG(add)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0), ENCARG(0)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1), ENCARG(1)) ENCARG(cons_app(cons_append, cons_app(z0, z1))) -> c14(APP(append, app(encArg(z0), encArg(z1))), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append), ENCARG(cons_append)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length), ENCARG(cons_length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply), ENCARG(apply)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id), ENCARG(id)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry), ENCARG(uncurry)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap), ENCARG(swap)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose), ENCARG(compose)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const), ENCARG(const)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify), ENCARG(listify)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons), ENCARG(cons)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil), ENCARG(nil)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold), ENCARG(fold)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum), ENCARG(sum)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add), ENCARG(add)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0), ENCARG(0)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1), ENCARG(1)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append), ENCARG(cons_append)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length), ENCARG(cons_length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (173) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 17 trailing tuple parts ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (175) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(cons_reverse, x1)) -> c14(APP(reverse, encArg(x1)), ENCARG(x1)) by ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply), ENCARG(apply)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id), ENCARG(id)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry), ENCARG(uncurry)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap), ENCARG(swap)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose), ENCARG(compose)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const), ENCARG(const)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify), ENCARG(listify)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons), ENCARG(cons)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil), ENCARG(nil)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold), ENCARG(fold)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum), ENCARG(sum)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add), ENCARG(add)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0), ENCARG(0)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1), ENCARG(1)) ENCARG(cons_app(cons_reverse, cons_app(z0, z1))) -> c14(APP(reverse, app(encArg(z0), encArg(z1))), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length), ENCARG(cons_length)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply), ENCARG(apply)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id), ENCARG(id)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry), ENCARG(uncurry)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap), ENCARG(swap)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose), ENCARG(compose)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const), ENCARG(const)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify), ENCARG(listify)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons), ENCARG(cons)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil), ENCARG(nil)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold), ENCARG(fold)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum), ENCARG(sum)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add), ENCARG(add)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0), ENCARG(0)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1), ENCARG(1)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append), ENCARG(cons_append)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length), ENCARG(cons_length)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (177) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 17 trailing tuple parts ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (179) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_app(cons_length, x1)) -> c14(APP(length, encArg(x1)), ENCARG(x1)) by ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply), ENCARG(apply)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id), ENCARG(id)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry), ENCARG(uncurry)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap), ENCARG(swap)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose), ENCARG(compose)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const), ENCARG(const)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify), ENCARG(listify)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons), ENCARG(cons)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil), ENCARG(nil)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold), ENCARG(fold)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum), ENCARG(sum)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add), ENCARG(add)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0), ENCARG(0)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1), ENCARG(1)) ENCARG(cons_app(cons_length, cons_app(z0, z1))) -> c14(APP(length, app(encArg(z0), encArg(z1))), ENCARG(cons_app(z0, z1))) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append), ENCARG(cons_append)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length), ENCARG(cons_length)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply), ENCARG(apply)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id), ENCARG(id)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry), ENCARG(uncurry)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap), ENCARG(swap)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose), ENCARG(compose)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const), ENCARG(const)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify), ENCARG(listify)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons), ENCARG(cons)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil), ENCARG(nil)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold), ENCARG(fold)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum), ENCARG(sum)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add), ENCARG(add)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0), ENCARG(0)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1), ENCARG(1)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append), ENCARG(cons_append)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse), ENCARG(cons_reverse)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length), ENCARG(cons_length)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (181) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 17 trailing tuple parts ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (183) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, apply) -> c(APP(encArg(x0), apply)) by ENCODE_APP(apply, apply) -> c(APP(apply, apply)) ENCODE_APP(id, apply) -> c(APP(id, apply)) ENCODE_APP(uncurry, apply) -> c(APP(uncurry, apply)) ENCODE_APP(swap, apply) -> c(APP(swap, apply)) ENCODE_APP(compose, apply) -> c(APP(compose, apply)) ENCODE_APP(const, apply) -> c(APP(const, apply)) ENCODE_APP(listify, apply) -> c(APP(listify, apply)) ENCODE_APP(cons, apply) -> c(APP(cons, apply)) ENCODE_APP(nil, apply) -> c(APP(nil, apply)) ENCODE_APP(fold, apply) -> c(APP(fold, apply)) ENCODE_APP(sum, apply) -> c(APP(sum, apply)) ENCODE_APP(add, apply) -> c(APP(add, apply)) ENCODE_APP(0, apply) -> c(APP(0, apply)) ENCODE_APP(1, apply) -> c(APP(1, apply)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(apply, apply) -> c(APP(apply, apply)) ENCODE_APP(id, apply) -> c(APP(id, apply)) ENCODE_APP(uncurry, apply) -> c(APP(uncurry, apply)) ENCODE_APP(swap, apply) -> c(APP(swap, apply)) ENCODE_APP(compose, apply) -> c(APP(compose, apply)) ENCODE_APP(const, apply) -> c(APP(const, apply)) ENCODE_APP(listify, apply) -> c(APP(listify, apply)) ENCODE_APP(cons, apply) -> c(APP(cons, apply)) ENCODE_APP(nil, apply) -> c(APP(nil, apply)) ENCODE_APP(fold, apply) -> c(APP(fold, apply)) ENCODE_APP(sum, apply) -> c(APP(sum, apply)) ENCODE_APP(add, apply) -> c(APP(add, apply)) ENCODE_APP(0, apply) -> c(APP(0, apply)) ENCODE_APP(1, apply) -> c(APP(1, apply)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (185) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, apply) -> c(APP(sum, apply)) ENCODE_APP(id, apply) -> c(APP(id, apply)) ENCODE_APP(listify, apply) -> c(APP(listify, apply)) Removed 11 trailing nodes: ENCODE_APP(1, apply) -> c(APP(1, apply)) ENCODE_APP(0, apply) -> c(APP(0, apply)) ENCODE_APP(uncurry, apply) -> c(APP(uncurry, apply)) ENCODE_APP(const, apply) -> c(APP(const, apply)) ENCODE_APP(fold, apply) -> c(APP(fold, apply)) ENCODE_APP(add, apply) -> c(APP(add, apply)) ENCODE_APP(apply, apply) -> c(APP(apply, apply)) ENCODE_APP(nil, apply) -> c(APP(nil, apply)) ENCODE_APP(cons, apply) -> c(APP(cons, apply)) ENCODE_APP(swap, apply) -> c(APP(swap, apply)) ENCODE_APP(compose, apply) -> c(APP(compose, apply)) ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (187) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, id) -> c(APP(encArg(x0), id)) by ENCODE_APP(apply, id) -> c(APP(apply, id)) ENCODE_APP(id, id) -> c(APP(id, id)) ENCODE_APP(uncurry, id) -> c(APP(uncurry, id)) ENCODE_APP(swap, id) -> c(APP(swap, id)) ENCODE_APP(compose, id) -> c(APP(compose, id)) ENCODE_APP(const, id) -> c(APP(const, id)) ENCODE_APP(listify, id) -> c(APP(listify, id)) ENCODE_APP(cons, id) -> c(APP(cons, id)) ENCODE_APP(nil, id) -> c(APP(nil, id)) ENCODE_APP(fold, id) -> c(APP(fold, id)) ENCODE_APP(sum, id) -> c(APP(sum, id)) ENCODE_APP(add, id) -> c(APP(add, id)) ENCODE_APP(0, id) -> c(APP(0, id)) ENCODE_APP(1, id) -> c(APP(1, id)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(apply, id) -> c(APP(apply, id)) ENCODE_APP(id, id) -> c(APP(id, id)) ENCODE_APP(uncurry, id) -> c(APP(uncurry, id)) ENCODE_APP(swap, id) -> c(APP(swap, id)) ENCODE_APP(compose, id) -> c(APP(compose, id)) ENCODE_APP(const, id) -> c(APP(const, id)) ENCODE_APP(listify, id) -> c(APP(listify, id)) ENCODE_APP(cons, id) -> c(APP(cons, id)) ENCODE_APP(nil, id) -> c(APP(nil, id)) ENCODE_APP(fold, id) -> c(APP(fold, id)) ENCODE_APP(sum, id) -> c(APP(sum, id)) ENCODE_APP(add, id) -> c(APP(add, id)) ENCODE_APP(0, id) -> c(APP(0, id)) ENCODE_APP(1, id) -> c(APP(1, id)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (189) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, id) -> c(APP(sum, id)) ENCODE_APP(id, id) -> c(APP(id, id)) ENCODE_APP(listify, id) -> c(APP(listify, id)) Removed 11 trailing nodes: ENCODE_APP(const, id) -> c(APP(const, id)) ENCODE_APP(uncurry, id) -> c(APP(uncurry, id)) ENCODE_APP(1, id) -> c(APP(1, id)) ENCODE_APP(add, id) -> c(APP(add, id)) ENCODE_APP(cons, id) -> c(APP(cons, id)) ENCODE_APP(swap, id) -> c(APP(swap, id)) ENCODE_APP(0, id) -> c(APP(0, id)) ENCODE_APP(compose, id) -> c(APP(compose, id)) ENCODE_APP(apply, id) -> c(APP(apply, id)) ENCODE_APP(fold, id) -> c(APP(fold, id)) ENCODE_APP(nil, id) -> c(APP(nil, id)) ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (191) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, uncurry) -> c(APP(encArg(x0), uncurry)) by ENCODE_APP(apply, uncurry) -> c(APP(apply, uncurry)) ENCODE_APP(id, uncurry) -> c(APP(id, uncurry)) ENCODE_APP(uncurry, uncurry) -> c(APP(uncurry, uncurry)) ENCODE_APP(swap, uncurry) -> c(APP(swap, uncurry)) ENCODE_APP(compose, uncurry) -> c(APP(compose, uncurry)) ENCODE_APP(const, uncurry) -> c(APP(const, uncurry)) ENCODE_APP(listify, uncurry) -> c(APP(listify, uncurry)) ENCODE_APP(cons, uncurry) -> c(APP(cons, uncurry)) ENCODE_APP(nil, uncurry) -> c(APP(nil, uncurry)) ENCODE_APP(fold, uncurry) -> c(APP(fold, uncurry)) ENCODE_APP(sum, uncurry) -> c(APP(sum, uncurry)) ENCODE_APP(add, uncurry) -> c(APP(add, uncurry)) ENCODE_APP(0, uncurry) -> c(APP(0, uncurry)) ENCODE_APP(1, uncurry) -> c(APP(1, uncurry)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(apply, uncurry) -> c(APP(apply, uncurry)) ENCODE_APP(id, uncurry) -> c(APP(id, uncurry)) ENCODE_APP(uncurry, uncurry) -> c(APP(uncurry, uncurry)) ENCODE_APP(swap, uncurry) -> c(APP(swap, uncurry)) ENCODE_APP(compose, uncurry) -> c(APP(compose, uncurry)) ENCODE_APP(const, uncurry) -> c(APP(const, uncurry)) ENCODE_APP(listify, uncurry) -> c(APP(listify, uncurry)) ENCODE_APP(cons, uncurry) -> c(APP(cons, uncurry)) ENCODE_APP(nil, uncurry) -> c(APP(nil, uncurry)) ENCODE_APP(fold, uncurry) -> c(APP(fold, uncurry)) ENCODE_APP(sum, uncurry) -> c(APP(sum, uncurry)) ENCODE_APP(add, uncurry) -> c(APP(add, uncurry)) ENCODE_APP(0, uncurry) -> c(APP(0, uncurry)) ENCODE_APP(1, uncurry) -> c(APP(1, uncurry)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (193) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, uncurry) -> c(APP(sum, uncurry)) ENCODE_APP(id, uncurry) -> c(APP(id, uncurry)) ENCODE_APP(listify, uncurry) -> c(APP(listify, uncurry)) Removed 11 trailing nodes: ENCODE_APP(1, uncurry) -> c(APP(1, uncurry)) ENCODE_APP(add, uncurry) -> c(APP(add, uncurry)) ENCODE_APP(nil, uncurry) -> c(APP(nil, uncurry)) ENCODE_APP(apply, uncurry) -> c(APP(apply, uncurry)) ENCODE_APP(0, uncurry) -> c(APP(0, uncurry)) ENCODE_APP(const, uncurry) -> c(APP(const, uncurry)) ENCODE_APP(compose, uncurry) -> c(APP(compose, uncurry)) ENCODE_APP(fold, uncurry) -> c(APP(fold, uncurry)) ENCODE_APP(uncurry, uncurry) -> c(APP(uncurry, uncurry)) ENCODE_APP(cons, uncurry) -> c(APP(cons, uncurry)) ENCODE_APP(swap, uncurry) -> c(APP(swap, uncurry)) ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (195) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, swap) -> c(APP(encArg(x0), swap)) by ENCODE_APP(apply, swap) -> c(APP(apply, swap)) ENCODE_APP(id, swap) -> c(APP(id, swap)) ENCODE_APP(uncurry, swap) -> c(APP(uncurry, swap)) ENCODE_APP(swap, swap) -> c(APP(swap, swap)) ENCODE_APP(compose, swap) -> c(APP(compose, swap)) ENCODE_APP(const, swap) -> c(APP(const, swap)) ENCODE_APP(listify, swap) -> c(APP(listify, swap)) ENCODE_APP(cons, swap) -> c(APP(cons, swap)) ENCODE_APP(nil, swap) -> c(APP(nil, swap)) ENCODE_APP(fold, swap) -> c(APP(fold, swap)) ENCODE_APP(sum, swap) -> c(APP(sum, swap)) ENCODE_APP(add, swap) -> c(APP(add, swap)) ENCODE_APP(0, swap) -> c(APP(0, swap)) ENCODE_APP(1, swap) -> c(APP(1, swap)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(apply, swap) -> c(APP(apply, swap)) ENCODE_APP(id, swap) -> c(APP(id, swap)) ENCODE_APP(uncurry, swap) -> c(APP(uncurry, swap)) ENCODE_APP(swap, swap) -> c(APP(swap, swap)) ENCODE_APP(compose, swap) -> c(APP(compose, swap)) ENCODE_APP(const, swap) -> c(APP(const, swap)) ENCODE_APP(listify, swap) -> c(APP(listify, swap)) ENCODE_APP(cons, swap) -> c(APP(cons, swap)) ENCODE_APP(nil, swap) -> c(APP(nil, swap)) ENCODE_APP(fold, swap) -> c(APP(fold, swap)) ENCODE_APP(sum, swap) -> c(APP(sum, swap)) ENCODE_APP(add, swap) -> c(APP(add, swap)) ENCODE_APP(0, swap) -> c(APP(0, swap)) ENCODE_APP(1, swap) -> c(APP(1, swap)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (197) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, swap) -> c(APP(sum, swap)) ENCODE_APP(id, swap) -> c(APP(id, swap)) ENCODE_APP(listify, swap) -> c(APP(listify, swap)) Removed 11 trailing nodes: ENCODE_APP(uncurry, swap) -> c(APP(uncurry, swap)) ENCODE_APP(const, swap) -> c(APP(const, swap)) ENCODE_APP(1, swap) -> c(APP(1, swap)) ENCODE_APP(cons, swap) -> c(APP(cons, swap)) ENCODE_APP(swap, swap) -> c(APP(swap, swap)) ENCODE_APP(compose, swap) -> c(APP(compose, swap)) ENCODE_APP(nil, swap) -> c(APP(nil, swap)) ENCODE_APP(apply, swap) -> c(APP(apply, swap)) ENCODE_APP(fold, swap) -> c(APP(fold, swap)) ENCODE_APP(add, swap) -> c(APP(add, swap)) ENCODE_APP(0, swap) -> c(APP(0, swap)) ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (199) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, compose) -> c(APP(encArg(x0), compose)) by ENCODE_APP(apply, compose) -> c(APP(apply, compose)) ENCODE_APP(id, compose) -> c(APP(id, compose)) ENCODE_APP(uncurry, compose) -> c(APP(uncurry, compose)) ENCODE_APP(swap, compose) -> c(APP(swap, compose)) ENCODE_APP(compose, compose) -> c(APP(compose, compose)) ENCODE_APP(const, compose) -> c(APP(const, compose)) ENCODE_APP(listify, compose) -> c(APP(listify, compose)) ENCODE_APP(cons, compose) -> c(APP(cons, compose)) ENCODE_APP(nil, compose) -> c(APP(nil, compose)) ENCODE_APP(fold, compose) -> c(APP(fold, compose)) ENCODE_APP(sum, compose) -> c(APP(sum, compose)) ENCODE_APP(add, compose) -> c(APP(add, compose)) ENCODE_APP(0, compose) -> c(APP(0, compose)) ENCODE_APP(1, compose) -> c(APP(1, compose)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(apply, compose) -> c(APP(apply, compose)) ENCODE_APP(id, compose) -> c(APP(id, compose)) ENCODE_APP(uncurry, compose) -> c(APP(uncurry, compose)) ENCODE_APP(swap, compose) -> c(APP(swap, compose)) ENCODE_APP(compose, compose) -> c(APP(compose, compose)) ENCODE_APP(const, compose) -> c(APP(const, compose)) ENCODE_APP(listify, compose) -> c(APP(listify, compose)) ENCODE_APP(cons, compose) -> c(APP(cons, compose)) ENCODE_APP(nil, compose) -> c(APP(nil, compose)) ENCODE_APP(fold, compose) -> c(APP(fold, compose)) ENCODE_APP(sum, compose) -> c(APP(sum, compose)) ENCODE_APP(add, compose) -> c(APP(add, compose)) ENCODE_APP(0, compose) -> c(APP(0, compose)) ENCODE_APP(1, compose) -> c(APP(1, compose)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (201) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, compose) -> c(APP(sum, compose)) ENCODE_APP(id, compose) -> c(APP(id, compose)) ENCODE_APP(listify, compose) -> c(APP(listify, compose)) Removed 11 trailing nodes: ENCODE_APP(const, compose) -> c(APP(const, compose)) ENCODE_APP(apply, compose) -> c(APP(apply, compose)) ENCODE_APP(fold, compose) -> c(APP(fold, compose)) ENCODE_APP(compose, compose) -> c(APP(compose, compose)) ENCODE_APP(add, compose) -> c(APP(add, compose)) ENCODE_APP(cons, compose) -> c(APP(cons, compose)) ENCODE_APP(swap, compose) -> c(APP(swap, compose)) ENCODE_APP(uncurry, compose) -> c(APP(uncurry, compose)) ENCODE_APP(1, compose) -> c(APP(1, compose)) ENCODE_APP(0, compose) -> c(APP(0, compose)) ENCODE_APP(nil, compose) -> c(APP(nil, compose)) ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (203) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, const) -> c(APP(encArg(x0), const)) by ENCODE_APP(apply, const) -> c(APP(apply, const)) ENCODE_APP(id, const) -> c(APP(id, const)) ENCODE_APP(uncurry, const) -> c(APP(uncurry, const)) ENCODE_APP(swap, const) -> c(APP(swap, const)) ENCODE_APP(compose, const) -> c(APP(compose, const)) ENCODE_APP(const, const) -> c(APP(const, const)) ENCODE_APP(listify, const) -> c(APP(listify, const)) ENCODE_APP(cons, const) -> c(APP(cons, const)) ENCODE_APP(nil, const) -> c(APP(nil, const)) ENCODE_APP(fold, const) -> c(APP(fold, const)) ENCODE_APP(sum, const) -> c(APP(sum, const)) ENCODE_APP(add, const) -> c(APP(add, const)) ENCODE_APP(0, const) -> c(APP(0, const)) ENCODE_APP(1, const) -> c(APP(1, const)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(apply, const) -> c(APP(apply, const)) ENCODE_APP(id, const) -> c(APP(id, const)) ENCODE_APP(uncurry, const) -> c(APP(uncurry, const)) ENCODE_APP(swap, const) -> c(APP(swap, const)) ENCODE_APP(compose, const) -> c(APP(compose, const)) ENCODE_APP(const, const) -> c(APP(const, const)) ENCODE_APP(listify, const) -> c(APP(listify, const)) ENCODE_APP(cons, const) -> c(APP(cons, const)) ENCODE_APP(nil, const) -> c(APP(nil, const)) ENCODE_APP(fold, const) -> c(APP(fold, const)) ENCODE_APP(sum, const) -> c(APP(sum, const)) ENCODE_APP(add, const) -> c(APP(add, const)) ENCODE_APP(0, const) -> c(APP(0, const)) ENCODE_APP(1, const) -> c(APP(1, const)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (205) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, const) -> c(APP(sum, const)) ENCODE_APP(id, const) -> c(APP(id, const)) ENCODE_APP(listify, const) -> c(APP(listify, const)) Removed 11 trailing nodes: ENCODE_APP(0, const) -> c(APP(0, const)) ENCODE_APP(add, const) -> c(APP(add, const)) ENCODE_APP(const, const) -> c(APP(const, const)) ENCODE_APP(fold, const) -> c(APP(fold, const)) ENCODE_APP(nil, const) -> c(APP(nil, const)) ENCODE_APP(apply, const) -> c(APP(apply, const)) ENCODE_APP(1, const) -> c(APP(1, const)) ENCODE_APP(compose, const) -> c(APP(compose, const)) ENCODE_APP(uncurry, const) -> c(APP(uncurry, const)) ENCODE_APP(cons, const) -> c(APP(cons, const)) ENCODE_APP(swap, const) -> c(APP(swap, const)) ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (207) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, listify) -> c(APP(encArg(x0), listify)) by ENCODE_APP(apply, listify) -> c(APP(apply, listify)) ENCODE_APP(id, listify) -> c(APP(id, listify)) ENCODE_APP(uncurry, listify) -> c(APP(uncurry, listify)) ENCODE_APP(swap, listify) -> c(APP(swap, listify)) ENCODE_APP(compose, listify) -> c(APP(compose, listify)) ENCODE_APP(const, listify) -> c(APP(const, listify)) ENCODE_APP(listify, listify) -> c(APP(listify, listify)) ENCODE_APP(cons, listify) -> c(APP(cons, listify)) ENCODE_APP(nil, listify) -> c(APP(nil, listify)) ENCODE_APP(fold, listify) -> c(APP(fold, listify)) ENCODE_APP(sum, listify) -> c(APP(sum, listify)) ENCODE_APP(add, listify) -> c(APP(add, listify)) ENCODE_APP(0, listify) -> c(APP(0, listify)) ENCODE_APP(1, listify) -> c(APP(1, listify)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(apply, listify) -> c(APP(apply, listify)) ENCODE_APP(id, listify) -> c(APP(id, listify)) ENCODE_APP(uncurry, listify) -> c(APP(uncurry, listify)) ENCODE_APP(swap, listify) -> c(APP(swap, listify)) ENCODE_APP(compose, listify) -> c(APP(compose, listify)) ENCODE_APP(const, listify) -> c(APP(const, listify)) ENCODE_APP(listify, listify) -> c(APP(listify, listify)) ENCODE_APP(cons, listify) -> c(APP(cons, listify)) ENCODE_APP(nil, listify) -> c(APP(nil, listify)) ENCODE_APP(fold, listify) -> c(APP(fold, listify)) ENCODE_APP(sum, listify) -> c(APP(sum, listify)) ENCODE_APP(add, listify) -> c(APP(add, listify)) ENCODE_APP(0, listify) -> c(APP(0, listify)) ENCODE_APP(1, listify) -> c(APP(1, listify)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (209) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, listify) -> c(APP(sum, listify)) ENCODE_APP(id, listify) -> c(APP(id, listify)) ENCODE_APP(listify, listify) -> c(APP(listify, listify)) Removed 11 trailing nodes: ENCODE_APP(cons, listify) -> c(APP(cons, listify)) ENCODE_APP(swap, listify) -> c(APP(swap, listify)) ENCODE_APP(compose, listify) -> c(APP(compose, listify)) ENCODE_APP(apply, listify) -> c(APP(apply, listify)) ENCODE_APP(fold, listify) -> c(APP(fold, listify)) ENCODE_APP(uncurry, listify) -> c(APP(uncurry, listify)) ENCODE_APP(0, listify) -> c(APP(0, listify)) ENCODE_APP(add, listify) -> c(APP(add, listify)) ENCODE_APP(1, listify) -> c(APP(1, listify)) ENCODE_APP(nil, listify) -> c(APP(nil, listify)) ENCODE_APP(const, listify) -> c(APP(const, listify)) ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (211) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, cons) -> c(APP(encArg(x0), cons)) by ENCODE_APP(apply, cons) -> c(APP(apply, cons)) ENCODE_APP(id, cons) -> c(APP(id, cons)) ENCODE_APP(uncurry, cons) -> c(APP(uncurry, cons)) ENCODE_APP(swap, cons) -> c(APP(swap, cons)) ENCODE_APP(compose, cons) -> c(APP(compose, cons)) ENCODE_APP(const, cons) -> c(APP(const, cons)) ENCODE_APP(listify, cons) -> c(APP(listify, cons)) ENCODE_APP(cons, cons) -> c(APP(cons, cons)) ENCODE_APP(nil, cons) -> c(APP(nil, cons)) ENCODE_APP(fold, cons) -> c(APP(fold, cons)) ENCODE_APP(sum, cons) -> c(APP(sum, cons)) ENCODE_APP(add, cons) -> c(APP(add, cons)) ENCODE_APP(0, cons) -> c(APP(0, cons)) ENCODE_APP(1, cons) -> c(APP(1, cons)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(apply, cons) -> c(APP(apply, cons)) ENCODE_APP(id, cons) -> c(APP(id, cons)) ENCODE_APP(uncurry, cons) -> c(APP(uncurry, cons)) ENCODE_APP(swap, cons) -> c(APP(swap, cons)) ENCODE_APP(compose, cons) -> c(APP(compose, cons)) ENCODE_APP(const, cons) -> c(APP(const, cons)) ENCODE_APP(listify, cons) -> c(APP(listify, cons)) ENCODE_APP(cons, cons) -> c(APP(cons, cons)) ENCODE_APP(nil, cons) -> c(APP(nil, cons)) ENCODE_APP(fold, cons) -> c(APP(fold, cons)) ENCODE_APP(sum, cons) -> c(APP(sum, cons)) ENCODE_APP(add, cons) -> c(APP(add, cons)) ENCODE_APP(0, cons) -> c(APP(0, cons)) ENCODE_APP(1, cons) -> c(APP(1, cons)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (213) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, cons) -> c(APP(sum, cons)) ENCODE_APP(id, cons) -> c(APP(id, cons)) ENCODE_APP(listify, cons) -> c(APP(listify, cons)) Removed 11 trailing nodes: ENCODE_APP(1, cons) -> c(APP(1, cons)) ENCODE_APP(cons, cons) -> c(APP(cons, cons)) ENCODE_APP(swap, cons) -> c(APP(swap, cons)) ENCODE_APP(uncurry, cons) -> c(APP(uncurry, cons)) ENCODE_APP(add, cons) -> c(APP(add, cons)) ENCODE_APP(nil, cons) -> c(APP(nil, cons)) ENCODE_APP(compose, cons) -> c(APP(compose, cons)) ENCODE_APP(0, cons) -> c(APP(0, cons)) ENCODE_APP(fold, cons) -> c(APP(fold, cons)) ENCODE_APP(apply, cons) -> c(APP(apply, cons)) ENCODE_APP(const, cons) -> c(APP(const, cons)) ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (215) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, nil) -> c(APP(encArg(x0), nil)) by ENCODE_APP(apply, nil) -> c(APP(apply, nil)) ENCODE_APP(id, nil) -> c(APP(id, nil)) ENCODE_APP(uncurry, nil) -> c(APP(uncurry, nil)) ENCODE_APP(swap, nil) -> c(APP(swap, nil)) ENCODE_APP(compose, nil) -> c(APP(compose, nil)) ENCODE_APP(const, nil) -> c(APP(const, nil)) ENCODE_APP(listify, nil) -> c(APP(listify, nil)) ENCODE_APP(cons, nil) -> c(APP(cons, nil)) ENCODE_APP(nil, nil) -> c(APP(nil, nil)) ENCODE_APP(fold, nil) -> c(APP(fold, nil)) ENCODE_APP(sum, nil) -> c(APP(sum, nil)) ENCODE_APP(add, nil) -> c(APP(add, nil)) ENCODE_APP(0, nil) -> c(APP(0, nil)) ENCODE_APP(1, nil) -> c(APP(1, nil)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(apply, nil) -> c(APP(apply, nil)) ENCODE_APP(id, nil) -> c(APP(id, nil)) ENCODE_APP(uncurry, nil) -> c(APP(uncurry, nil)) ENCODE_APP(swap, nil) -> c(APP(swap, nil)) ENCODE_APP(compose, nil) -> c(APP(compose, nil)) ENCODE_APP(const, nil) -> c(APP(const, nil)) ENCODE_APP(listify, nil) -> c(APP(listify, nil)) ENCODE_APP(cons, nil) -> c(APP(cons, nil)) ENCODE_APP(nil, nil) -> c(APP(nil, nil)) ENCODE_APP(fold, nil) -> c(APP(fold, nil)) ENCODE_APP(sum, nil) -> c(APP(sum, nil)) ENCODE_APP(add, nil) -> c(APP(add, nil)) ENCODE_APP(0, nil) -> c(APP(0, nil)) ENCODE_APP(1, nil) -> c(APP(1, nil)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (217) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, nil) -> c(APP(sum, nil)) ENCODE_APP(id, nil) -> c(APP(id, nil)) ENCODE_APP(listify, nil) -> c(APP(listify, nil)) Removed 11 trailing nodes: ENCODE_APP(const, nil) -> c(APP(const, nil)) ENCODE_APP(0, nil) -> c(APP(0, nil)) ENCODE_APP(uncurry, nil) -> c(APP(uncurry, nil)) ENCODE_APP(fold, nil) -> c(APP(fold, nil)) ENCODE_APP(compose, nil) -> c(APP(compose, nil)) ENCODE_APP(nil, nil) -> c(APP(nil, nil)) ENCODE_APP(add, nil) -> c(APP(add, nil)) ENCODE_APP(1, nil) -> c(APP(1, nil)) ENCODE_APP(cons, nil) -> c(APP(cons, nil)) ENCODE_APP(swap, nil) -> c(APP(swap, nil)) ENCODE_APP(apply, nil) -> c(APP(apply, nil)) ---------------------------------------- (218) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (219) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, fold) -> c(APP(encArg(x0), fold)) by ENCODE_APP(apply, fold) -> c(APP(apply, fold)) ENCODE_APP(id, fold) -> c(APP(id, fold)) ENCODE_APP(uncurry, fold) -> c(APP(uncurry, fold)) ENCODE_APP(swap, fold) -> c(APP(swap, fold)) ENCODE_APP(compose, fold) -> c(APP(compose, fold)) ENCODE_APP(const, fold) -> c(APP(const, fold)) ENCODE_APP(listify, fold) -> c(APP(listify, fold)) ENCODE_APP(cons, fold) -> c(APP(cons, fold)) ENCODE_APP(nil, fold) -> c(APP(nil, fold)) ENCODE_APP(fold, fold) -> c(APP(fold, fold)) ENCODE_APP(sum, fold) -> c(APP(sum, fold)) ENCODE_APP(add, fold) -> c(APP(add, fold)) ENCODE_APP(0, fold) -> c(APP(0, fold)) ENCODE_APP(1, fold) -> c(APP(1, fold)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ---------------------------------------- (220) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(apply, fold) -> c(APP(apply, fold)) ENCODE_APP(id, fold) -> c(APP(id, fold)) ENCODE_APP(uncurry, fold) -> c(APP(uncurry, fold)) ENCODE_APP(swap, fold) -> c(APP(swap, fold)) ENCODE_APP(compose, fold) -> c(APP(compose, fold)) ENCODE_APP(const, fold) -> c(APP(const, fold)) ENCODE_APP(listify, fold) -> c(APP(listify, fold)) ENCODE_APP(cons, fold) -> c(APP(cons, fold)) ENCODE_APP(nil, fold) -> c(APP(nil, fold)) ENCODE_APP(fold, fold) -> c(APP(fold, fold)) ENCODE_APP(sum, fold) -> c(APP(sum, fold)) ENCODE_APP(add, fold) -> c(APP(add, fold)) ENCODE_APP(0, fold) -> c(APP(0, fold)) ENCODE_APP(1, fold) -> c(APP(1, fold)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (221) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, fold) -> c(APP(sum, fold)) ENCODE_APP(id, fold) -> c(APP(id, fold)) ENCODE_APP(listify, fold) -> c(APP(listify, fold)) Removed 11 trailing nodes: ENCODE_APP(const, fold) -> c(APP(const, fold)) ENCODE_APP(apply, fold) -> c(APP(apply, fold)) ENCODE_APP(0, fold) -> c(APP(0, fold)) ENCODE_APP(1, fold) -> c(APP(1, fold)) ENCODE_APP(fold, fold) -> c(APP(fold, fold)) ENCODE_APP(compose, fold) -> c(APP(compose, fold)) ENCODE_APP(add, fold) -> c(APP(add, fold)) ENCODE_APP(nil, fold) -> c(APP(nil, fold)) ENCODE_APP(uncurry, fold) -> c(APP(uncurry, fold)) ENCODE_APP(cons, fold) -> c(APP(cons, fold)) ENCODE_APP(swap, fold) -> c(APP(swap, fold)) ---------------------------------------- (222) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (223) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, sum) -> c(APP(encArg(x0), sum)) by ENCODE_APP(apply, sum) -> c(APP(apply, sum)) ENCODE_APP(id, sum) -> c(APP(id, sum)) ENCODE_APP(uncurry, sum) -> c(APP(uncurry, sum)) ENCODE_APP(swap, sum) -> c(APP(swap, sum)) ENCODE_APP(compose, sum) -> c(APP(compose, sum)) ENCODE_APP(const, sum) -> c(APP(const, sum)) ENCODE_APP(listify, sum) -> c(APP(listify, sum)) ENCODE_APP(cons, sum) -> c(APP(cons, sum)) ENCODE_APP(nil, sum) -> c(APP(nil, sum)) ENCODE_APP(fold, sum) -> c(APP(fold, sum)) ENCODE_APP(sum, sum) -> c(APP(sum, sum)) ENCODE_APP(add, sum) -> c(APP(add, sum)) ENCODE_APP(0, sum) -> c(APP(0, sum)) ENCODE_APP(1, sum) -> c(APP(1, sum)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ---------------------------------------- (224) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(apply, sum) -> c(APP(apply, sum)) ENCODE_APP(id, sum) -> c(APP(id, sum)) ENCODE_APP(uncurry, sum) -> c(APP(uncurry, sum)) ENCODE_APP(swap, sum) -> c(APP(swap, sum)) ENCODE_APP(compose, sum) -> c(APP(compose, sum)) ENCODE_APP(const, sum) -> c(APP(const, sum)) ENCODE_APP(listify, sum) -> c(APP(listify, sum)) ENCODE_APP(cons, sum) -> c(APP(cons, sum)) ENCODE_APP(nil, sum) -> c(APP(nil, sum)) ENCODE_APP(fold, sum) -> c(APP(fold, sum)) ENCODE_APP(sum, sum) -> c(APP(sum, sum)) ENCODE_APP(add, sum) -> c(APP(add, sum)) ENCODE_APP(0, sum) -> c(APP(0, sum)) ENCODE_APP(1, sum) -> c(APP(1, sum)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (225) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, sum) -> c(APP(sum, sum)) ENCODE_APP(id, sum) -> c(APP(id, sum)) ENCODE_APP(listify, sum) -> c(APP(listify, sum)) Removed 11 trailing nodes: ENCODE_APP(fold, sum) -> c(APP(fold, sum)) ENCODE_APP(const, sum) -> c(APP(const, sum)) ENCODE_APP(apply, sum) -> c(APP(apply, sum)) ENCODE_APP(nil, sum) -> c(APP(nil, sum)) ENCODE_APP(compose, sum) -> c(APP(compose, sum)) ENCODE_APP(cons, sum) -> c(APP(cons, sum)) ENCODE_APP(swap, sum) -> c(APP(swap, sum)) ENCODE_APP(uncurry, sum) -> c(APP(uncurry, sum)) ENCODE_APP(1, sum) -> c(APP(1, sum)) ENCODE_APP(0, sum) -> c(APP(0, sum)) ENCODE_APP(add, sum) -> c(APP(add, sum)) ---------------------------------------- (226) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (227) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, add) -> c(APP(encArg(x0), add)) by ENCODE_APP(apply, add) -> c(APP(apply, add)) ENCODE_APP(id, add) -> c(APP(id, add)) ENCODE_APP(uncurry, add) -> c(APP(uncurry, add)) ENCODE_APP(swap, add) -> c(APP(swap, add)) ENCODE_APP(compose, add) -> c(APP(compose, add)) ENCODE_APP(const, add) -> c(APP(const, add)) ENCODE_APP(listify, add) -> c(APP(listify, add)) ENCODE_APP(cons, add) -> c(APP(cons, add)) ENCODE_APP(nil, add) -> c(APP(nil, add)) ENCODE_APP(fold, add) -> c(APP(fold, add)) ENCODE_APP(sum, add) -> c(APP(sum, add)) ENCODE_APP(add, add) -> c(APP(add, add)) ENCODE_APP(0, add) -> c(APP(0, add)) ENCODE_APP(1, add) -> c(APP(1, add)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ---------------------------------------- (228) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(apply, add) -> c(APP(apply, add)) ENCODE_APP(id, add) -> c(APP(id, add)) ENCODE_APP(uncurry, add) -> c(APP(uncurry, add)) ENCODE_APP(swap, add) -> c(APP(swap, add)) ENCODE_APP(compose, add) -> c(APP(compose, add)) ENCODE_APP(const, add) -> c(APP(const, add)) ENCODE_APP(listify, add) -> c(APP(listify, add)) ENCODE_APP(cons, add) -> c(APP(cons, add)) ENCODE_APP(nil, add) -> c(APP(nil, add)) ENCODE_APP(fold, add) -> c(APP(fold, add)) ENCODE_APP(sum, add) -> c(APP(sum, add)) ENCODE_APP(add, add) -> c(APP(add, add)) ENCODE_APP(0, add) -> c(APP(0, add)) ENCODE_APP(1, add) -> c(APP(1, add)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (229) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, add) -> c(APP(sum, add)) ENCODE_APP(id, add) -> c(APP(id, add)) ENCODE_APP(listify, add) -> c(APP(listify, add)) Removed 11 trailing nodes: ENCODE_APP(add, add) -> c(APP(add, add)) ENCODE_APP(fold, add) -> c(APP(fold, add)) ENCODE_APP(const, add) -> c(APP(const, add)) ENCODE_APP(compose, add) -> c(APP(compose, add)) ENCODE_APP(apply, add) -> c(APP(apply, add)) ENCODE_APP(cons, add) -> c(APP(cons, add)) ENCODE_APP(swap, add) -> c(APP(swap, add)) ENCODE_APP(1, add) -> c(APP(1, add)) ENCODE_APP(uncurry, add) -> c(APP(uncurry, add)) ENCODE_APP(0, add) -> c(APP(0, add)) ENCODE_APP(nil, add) -> c(APP(nil, add)) ---------------------------------------- (230) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (231) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, 0) -> c(APP(encArg(x0), 0)) by ENCODE_APP(apply, 0) -> c(APP(apply, 0)) ENCODE_APP(id, 0) -> c(APP(id, 0)) ENCODE_APP(uncurry, 0) -> c(APP(uncurry, 0)) ENCODE_APP(swap, 0) -> c(APP(swap, 0)) ENCODE_APP(compose, 0) -> c(APP(compose, 0)) ENCODE_APP(const, 0) -> c(APP(const, 0)) ENCODE_APP(listify, 0) -> c(APP(listify, 0)) ENCODE_APP(cons, 0) -> c(APP(cons, 0)) ENCODE_APP(nil, 0) -> c(APP(nil, 0)) ENCODE_APP(fold, 0) -> c(APP(fold, 0)) ENCODE_APP(sum, 0) -> c(APP(sum, 0)) ENCODE_APP(add, 0) -> c(APP(add, 0)) ENCODE_APP(0, 0) -> c(APP(0, 0)) ENCODE_APP(1, 0) -> c(APP(1, 0)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ---------------------------------------- (232) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(apply, 0) -> c(APP(apply, 0)) ENCODE_APP(id, 0) -> c(APP(id, 0)) ENCODE_APP(uncurry, 0) -> c(APP(uncurry, 0)) ENCODE_APP(swap, 0) -> c(APP(swap, 0)) ENCODE_APP(compose, 0) -> c(APP(compose, 0)) ENCODE_APP(const, 0) -> c(APP(const, 0)) ENCODE_APP(listify, 0) -> c(APP(listify, 0)) ENCODE_APP(cons, 0) -> c(APP(cons, 0)) ENCODE_APP(nil, 0) -> c(APP(nil, 0)) ENCODE_APP(fold, 0) -> c(APP(fold, 0)) ENCODE_APP(sum, 0) -> c(APP(sum, 0)) ENCODE_APP(add, 0) -> c(APP(add, 0)) ENCODE_APP(0, 0) -> c(APP(0, 0)) ENCODE_APP(1, 0) -> c(APP(1, 0)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (233) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, 0) -> c(APP(sum, 0)) ENCODE_APP(id, 0) -> c(APP(id, 0)) ENCODE_APP(listify, 0) -> c(APP(listify, 0)) Removed 11 trailing nodes: ENCODE_APP(add, 0) -> c(APP(add, 0)) ENCODE_APP(1, 0) -> c(APP(1, 0)) ENCODE_APP(const, 0) -> c(APP(const, 0)) ENCODE_APP(uncurry, 0) -> c(APP(uncurry, 0)) ENCODE_APP(nil, 0) -> c(APP(nil, 0)) ENCODE_APP(0, 0) -> c(APP(0, 0)) ENCODE_APP(compose, 0) -> c(APP(compose, 0)) ENCODE_APP(fold, 0) -> c(APP(fold, 0)) ENCODE_APP(cons, 0) -> c(APP(cons, 0)) ENCODE_APP(swap, 0) -> c(APP(swap, 0)) ENCODE_APP(apply, 0) -> c(APP(apply, 0)) ---------------------------------------- (234) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (235) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, 1) -> c(APP(encArg(x0), 1)) by ENCODE_APP(apply, 1) -> c(APP(apply, 1)) ENCODE_APP(id, 1) -> c(APP(id, 1)) ENCODE_APP(uncurry, 1) -> c(APP(uncurry, 1)) ENCODE_APP(swap, 1) -> c(APP(swap, 1)) ENCODE_APP(compose, 1) -> c(APP(compose, 1)) ENCODE_APP(const, 1) -> c(APP(const, 1)) ENCODE_APP(listify, 1) -> c(APP(listify, 1)) ENCODE_APP(cons, 1) -> c(APP(cons, 1)) ENCODE_APP(nil, 1) -> c(APP(nil, 1)) ENCODE_APP(fold, 1) -> c(APP(fold, 1)) ENCODE_APP(sum, 1) -> c(APP(sum, 1)) ENCODE_APP(add, 1) -> c(APP(add, 1)) ENCODE_APP(0, 1) -> c(APP(0, 1)) ENCODE_APP(1, 1) -> c(APP(1, 1)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ---------------------------------------- (236) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(apply, 1) -> c(APP(apply, 1)) ENCODE_APP(id, 1) -> c(APP(id, 1)) ENCODE_APP(uncurry, 1) -> c(APP(uncurry, 1)) ENCODE_APP(swap, 1) -> c(APP(swap, 1)) ENCODE_APP(compose, 1) -> c(APP(compose, 1)) ENCODE_APP(const, 1) -> c(APP(const, 1)) ENCODE_APP(listify, 1) -> c(APP(listify, 1)) ENCODE_APP(cons, 1) -> c(APP(cons, 1)) ENCODE_APP(nil, 1) -> c(APP(nil, 1)) ENCODE_APP(fold, 1) -> c(APP(fold, 1)) ENCODE_APP(sum, 1) -> c(APP(sum, 1)) ENCODE_APP(add, 1) -> c(APP(add, 1)) ENCODE_APP(0, 1) -> c(APP(0, 1)) ENCODE_APP(1, 1) -> c(APP(1, 1)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (237) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 3 leading nodes: ENCODE_APP(sum, 1) -> c(APP(sum, 1)) ENCODE_APP(id, 1) -> c(APP(id, 1)) ENCODE_APP(listify, 1) -> c(APP(listify, 1)) Removed 11 trailing nodes: ENCODE_APP(0, 1) -> c(APP(0, 1)) ENCODE_APP(const, 1) -> c(APP(const, 1)) ENCODE_APP(uncurry, 1) -> c(APP(uncurry, 1)) ENCODE_APP(cons, 1) -> c(APP(cons, 1)) ENCODE_APP(swap, 1) -> c(APP(swap, 1)) ENCODE_APP(fold, 1) -> c(APP(fold, 1)) ENCODE_APP(add, 1) -> c(APP(add, 1)) ENCODE_APP(apply, 1) -> c(APP(apply, 1)) ENCODE_APP(1, 1) -> c(APP(1, 1)) ENCODE_APP(nil, 1) -> c(APP(nil, 1)) ENCODE_APP(compose, 1) -> c(APP(compose, 1)) ---------------------------------------- (238) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (239) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, cons_app(z0, z1)) -> c(APP(encArg(x0), app(encArg(z0), encArg(z1)))) by ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(apply, cons_app(x1, x2)) -> c(APP(apply, app(encArg(x1), encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(uncurry, cons_app(x1, x2)) -> c(APP(uncurry, app(encArg(x1), encArg(x2)))) ENCODE_APP(swap, cons_app(x1, x2)) -> c(APP(swap, app(encArg(x1), encArg(x2)))) ENCODE_APP(compose, cons_app(x1, x2)) -> c(APP(compose, app(encArg(x1), encArg(x2)))) ENCODE_APP(const, cons_app(x1, x2)) -> c(APP(const, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons, cons_app(x1, x2)) -> c(APP(cons, app(encArg(x1), encArg(x2)))) ENCODE_APP(nil, cons_app(x1, x2)) -> c(APP(nil, app(encArg(x1), encArg(x2)))) ENCODE_APP(fold, cons_app(x1, x2)) -> c(APP(fold, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(add, cons_app(x1, x2)) -> c(APP(add, app(encArg(x1), encArg(x2)))) ENCODE_APP(0, cons_app(x1, x2)) -> c(APP(0, app(encArg(x1), encArg(x2)))) ENCODE_APP(1, cons_app(x1, x2)) -> c(APP(1, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) ---------------------------------------- (240) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(apply, cons_app(x1, x2)) -> c(APP(apply, app(encArg(x1), encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(uncurry, cons_app(x1, x2)) -> c(APP(uncurry, app(encArg(x1), encArg(x2)))) ENCODE_APP(swap, cons_app(x1, x2)) -> c(APP(swap, app(encArg(x1), encArg(x2)))) ENCODE_APP(compose, cons_app(x1, x2)) -> c(APP(compose, app(encArg(x1), encArg(x2)))) ENCODE_APP(const, cons_app(x1, x2)) -> c(APP(const, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons, cons_app(x1, x2)) -> c(APP(cons, app(encArg(x1), encArg(x2)))) ENCODE_APP(nil, cons_app(x1, x2)) -> c(APP(nil, app(encArg(x1), encArg(x2)))) ENCODE_APP(fold, cons_app(x1, x2)) -> c(APP(fold, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(add, cons_app(x1, x2)) -> c(APP(add, app(encArg(x1), encArg(x2)))) ENCODE_APP(0, cons_app(x1, x2)) -> c(APP(0, app(encArg(x1), encArg(x2)))) ENCODE_APP(1, cons_app(x1, x2)) -> c(APP(1, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (241) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCODE_APP(fold, cons_app(x1, x2)) -> c(APP(fold, app(encArg(x1), encArg(x2)))) ENCODE_APP(compose, cons_app(x1, x2)) -> c(APP(compose, app(encArg(x1), encArg(x2)))) ENCODE_APP(add, cons_app(x1, x2)) -> c(APP(add, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons, cons_app(x1, x2)) -> c(APP(cons, app(encArg(x1), encArg(x2)))) ENCODE_APP(apply, cons_app(x1, x2)) -> c(APP(apply, app(encArg(x1), encArg(x2)))) ENCODE_APP(0, cons_app(x1, x2)) -> c(APP(0, app(encArg(x1), encArg(x2)))) ENCODE_APP(1, cons_app(x1, x2)) -> c(APP(1, app(encArg(x1), encArg(x2)))) ENCODE_APP(const, cons_app(x1, x2)) -> c(APP(const, app(encArg(x1), encArg(x2)))) ENCODE_APP(nil, cons_app(x1, x2)) -> c(APP(nil, app(encArg(x1), encArg(x2)))) ENCODE_APP(swap, cons_app(x1, x2)) -> c(APP(swap, app(encArg(x1), encArg(x2)))) ENCODE_APP(uncurry, cons_app(x1, x2)) -> c(APP(uncurry, app(encArg(x1), encArg(x2)))) ---------------------------------------- (242) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (243) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), append)) by ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id))) ENCODE_APP(apply, cons_append) -> c(APP(apply, append)) ENCODE_APP(id, cons_append) -> c(APP(id, append)) ENCODE_APP(uncurry, cons_append) -> c(APP(uncurry, append)) ENCODE_APP(swap, cons_append) -> c(APP(swap, append)) ENCODE_APP(compose, cons_append) -> c(APP(compose, append)) ENCODE_APP(const, cons_append) -> c(APP(const, append)) ENCODE_APP(listify, cons_append) -> c(APP(listify, append)) ENCODE_APP(cons, cons_append) -> c(APP(cons, append)) ENCODE_APP(nil, cons_append) -> c(APP(nil, append)) ENCODE_APP(fold, cons_append) -> c(APP(fold, append)) ENCODE_APP(sum, cons_append) -> c(APP(sum, append)) ENCODE_APP(add, cons_append) -> c(APP(add, append)) ENCODE_APP(0, cons_append) -> c(APP(0, append)) ENCODE_APP(1, cons_append) -> c(APP(1, append)) ENCODE_APP(cons_app(z0, z1), cons_append) -> c(APP(app(encArg(z0), encArg(z1)), append)) ENCODE_APP(cons_append, cons_append) -> c(APP(append, append)) ENCODE_APP(cons_reverse, cons_append) -> c(APP(reverse, append)) ENCODE_APP(cons_length, cons_append) -> c(APP(length, append)) ---------------------------------------- (244) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id))) ENCODE_APP(apply, cons_append) -> c(APP(apply, append)) ENCODE_APP(id, cons_append) -> c(APP(id, append)) ENCODE_APP(uncurry, cons_append) -> c(APP(uncurry, append)) ENCODE_APP(swap, cons_append) -> c(APP(swap, append)) ENCODE_APP(compose, cons_append) -> c(APP(compose, append)) ENCODE_APP(const, cons_append) -> c(APP(const, append)) ENCODE_APP(listify, cons_append) -> c(APP(listify, append)) ENCODE_APP(cons, cons_append) -> c(APP(cons, append)) ENCODE_APP(nil, cons_append) -> c(APP(nil, append)) ENCODE_APP(fold, cons_append) -> c(APP(fold, append)) ENCODE_APP(sum, cons_append) -> c(APP(sum, append)) ENCODE_APP(add, cons_append) -> c(APP(add, append)) ENCODE_APP(0, cons_append) -> c(APP(0, append)) ENCODE_APP(1, cons_append) -> c(APP(1, append)) ENCODE_APP(cons_app(z0, z1), cons_append) -> c(APP(app(encArg(z0), encArg(z1)), append)) ENCODE_APP(cons_append, cons_append) -> c(APP(append, append)) ENCODE_APP(cons_reverse, cons_append) -> c(APP(reverse, append)) ENCODE_APP(cons_length, cons_append) -> c(APP(length, append)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (245) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCODE_APP(1, cons_append) -> c(APP(1, append)) ENCODE_APP(const, cons_append) -> c(APP(const, append)) ENCODE_APP(swap, cons_append) -> c(APP(swap, append)) ENCODE_APP(compose, cons_append) -> c(APP(compose, append)) ENCODE_APP(add, cons_append) -> c(APP(add, append)) ENCODE_APP(0, cons_append) -> c(APP(0, append)) ENCODE_APP(nil, cons_append) -> c(APP(nil, append)) ENCODE_APP(uncurry, cons_append) -> c(APP(uncurry, append)) ENCODE_APP(cons, cons_append) -> c(APP(cons, append)) ENCODE_APP(apply, cons_append) -> c(APP(apply, append)) ENCODE_APP(fold, cons_append) -> c(APP(fold, append)) ---------------------------------------- (246) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id))) ENCODE_APP(id, cons_append) -> c(APP(id, append)) ENCODE_APP(listify, cons_append) -> c(APP(listify, append)) ENCODE_APP(sum, cons_append) -> c(APP(sum, append)) ENCODE_APP(cons_app(z0, z1), cons_append) -> c(APP(app(encArg(z0), encArg(z1)), append)) ENCODE_APP(cons_append, cons_append) -> c(APP(append, append)) ENCODE_APP(cons_reverse, cons_append) -> c(APP(reverse, append)) ENCODE_APP(cons_length, cons_append) -> c(APP(length, append)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (247) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), reverse)) by ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil))) ENCODE_APP(apply, cons_reverse) -> c(APP(apply, reverse)) ENCODE_APP(id, cons_reverse) -> c(APP(id, reverse)) ENCODE_APP(uncurry, cons_reverse) -> c(APP(uncurry, reverse)) ENCODE_APP(swap, cons_reverse) -> c(APP(swap, reverse)) ENCODE_APP(compose, cons_reverse) -> c(APP(compose, reverse)) ENCODE_APP(const, cons_reverse) -> c(APP(const, reverse)) ENCODE_APP(listify, cons_reverse) -> c(APP(listify, reverse)) ENCODE_APP(cons, cons_reverse) -> c(APP(cons, reverse)) ENCODE_APP(nil, cons_reverse) -> c(APP(nil, reverse)) ENCODE_APP(fold, cons_reverse) -> c(APP(fold, reverse)) ENCODE_APP(sum, cons_reverse) -> c(APP(sum, reverse)) ENCODE_APP(add, cons_reverse) -> c(APP(add, reverse)) ENCODE_APP(0, cons_reverse) -> c(APP(0, reverse)) ENCODE_APP(1, cons_reverse) -> c(APP(1, reverse)) ENCODE_APP(cons_app(z0, z1), cons_reverse) -> c(APP(app(encArg(z0), encArg(z1)), reverse)) ENCODE_APP(cons_append, cons_reverse) -> c(APP(append, reverse)) ENCODE_APP(cons_reverse, cons_reverse) -> c(APP(reverse, reverse)) ENCODE_APP(cons_length, cons_reverse) -> c(APP(length, reverse)) ---------------------------------------- (248) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id))) ENCODE_APP(id, cons_append) -> c(APP(id, append)) ENCODE_APP(listify, cons_append) -> c(APP(listify, append)) ENCODE_APP(sum, cons_append) -> c(APP(sum, append)) ENCODE_APP(cons_app(z0, z1), cons_append) -> c(APP(app(encArg(z0), encArg(z1)), append)) ENCODE_APP(cons_append, cons_append) -> c(APP(append, append)) ENCODE_APP(cons_reverse, cons_append) -> c(APP(reverse, append)) ENCODE_APP(cons_length, cons_append) -> c(APP(length, append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil))) ENCODE_APP(apply, cons_reverse) -> c(APP(apply, reverse)) ENCODE_APP(id, cons_reverse) -> c(APP(id, reverse)) ENCODE_APP(uncurry, cons_reverse) -> c(APP(uncurry, reverse)) ENCODE_APP(swap, cons_reverse) -> c(APP(swap, reverse)) ENCODE_APP(compose, cons_reverse) -> c(APP(compose, reverse)) ENCODE_APP(const, cons_reverse) -> c(APP(const, reverse)) ENCODE_APP(listify, cons_reverse) -> c(APP(listify, reverse)) ENCODE_APP(cons, cons_reverse) -> c(APP(cons, reverse)) ENCODE_APP(nil, cons_reverse) -> c(APP(nil, reverse)) ENCODE_APP(fold, cons_reverse) -> c(APP(fold, reverse)) ENCODE_APP(sum, cons_reverse) -> c(APP(sum, reverse)) ENCODE_APP(add, cons_reverse) -> c(APP(add, reverse)) ENCODE_APP(0, cons_reverse) -> c(APP(0, reverse)) ENCODE_APP(1, cons_reverse) -> c(APP(1, reverse)) ENCODE_APP(cons_app(z0, z1), cons_reverse) -> c(APP(app(encArg(z0), encArg(z1)), reverse)) ENCODE_APP(cons_append, cons_reverse) -> c(APP(append, reverse)) ENCODE_APP(cons_reverse, cons_reverse) -> c(APP(reverse, reverse)) ENCODE_APP(cons_length, cons_reverse) -> c(APP(length, reverse)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3 ---------------------------------------- (249) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing nodes: ENCODE_APP(0, cons_reverse) -> c(APP(0, reverse)) ENCODE_APP(add, cons_reverse) -> c(APP(add, reverse)) ENCODE_APP(cons, cons_reverse) -> c(APP(cons, reverse)) ENCODE_APP(compose, cons_reverse) -> c(APP(compose, reverse)) ENCODE_APP(fold, cons_reverse) -> c(APP(fold, reverse)) ENCODE_APP(nil, cons_reverse) -> c(APP(nil, reverse)) ENCODE_APP(const, cons_reverse) -> c(APP(const, reverse)) ENCODE_APP(uncurry, cons_reverse) -> c(APP(uncurry, reverse)) ENCODE_APP(swap, cons_reverse) -> c(APP(swap, reverse)) ENCODE_APP(1, cons_reverse) -> c(APP(1, reverse)) ENCODE_APP(apply, cons_reverse) -> c(APP(apply, reverse)) ---------------------------------------- (250) Obligation: Complexity Dependency Tuples Problem Rules: encArg(apply) -> apply encArg(id) -> id encArg(uncurry) -> uncurry encArg(swap) -> swap encArg(compose) -> compose encArg(const) -> const encArg(listify) -> listify encArg(cons) -> cons encArg(nil) -> nil encArg(fold) -> fold encArg(sum) -> sum encArg(add) -> add encArg(0) -> 0 encArg(1) -> 1 encArg(cons_app(z0, z1)) -> app(encArg(z0), encArg(z1)) encArg(cons_append) -> append encArg(cons_reverse) -> reverse encArg(cons_length) -> length app(app(apply, z0), z1) -> app(z0, z1) app(id, z0) -> z0 app(app(app(uncurry, z0), z1), z2) -> app(app(z0, z1), z2) app(app(app(swap, z0), z1), z2) -> app(app(z0, z2), z1) app(app(app(compose, z0), z1), z2) -> app(z0, app(z1, z2)) app(app(const, z0), z1) -> z0 app(listify, z0) -> app(app(cons, z0), nil) app(app(app(app(fold, z0), z1), z2), nil) -> z2 app(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> app(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)) app(sum, z0) -> app(app(app(app(fold, add), id), 0), z0) app(app(uncurry, app(app(fold, cons), id)), nil) -> id append -> app(app(compose, app(app(swap, fold), cons)), id) reverse -> app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil) length -> app(app(uncurry, app(app(fold, add), app(cons, 1))), 0) Tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) ENCARG(cons_app(apply, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(id, x1)) -> c14(APP(id, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(uncurry, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(swap, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(compose, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(const, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(listify, x1)) -> c14(APP(listify, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(cons, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(nil, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(fold, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(sum, x1)) -> c14(APP(sum, encArg(x1)), ENCARG(x1)) ENCARG(cons_app(add, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(0, x1)) -> c14(ENCARG(x1)) ENCARG(cons_app(1, x1)) -> c14(ENCARG(x1)) ENCODE_APP(x0, cons_length) -> c(APP(encArg(x0), length)) ENCODE_APP(id, x1) -> c(APP(id, encArg(x1))) ENCODE_APP(listify, x1) -> c(APP(listify, encArg(x1))) ENCODE_APP(sum, x1) -> c(APP(sum, encArg(x1))) ENCODE_APP(cons_app(z0, z1), x1) -> c(APP(app(encArg(z0), encArg(z1)), encArg(x1))) ENCODE_APP(cons_append, x1) -> c(APP(append, encArg(x1))) ENCODE_APP(cons_reverse, x1) -> c(APP(reverse, encArg(x1))) ENCODE_APP(cons_length, x1) -> c(APP(length, encArg(x1))) ENCARG(cons_app(x0, cons_app(x1, apply))) -> c14(APP(encArg(x0), app(encArg(x1), apply)), ENCARG(x0), ENCARG(cons_app(x1, apply))) ENCARG(cons_app(x0, cons_app(x1, id))) -> c14(APP(encArg(x0), app(encArg(x1), id)), ENCARG(x0), ENCARG(cons_app(x1, id))) ENCARG(cons_app(x0, cons_app(x1, uncurry))) -> c14(APP(encArg(x0), app(encArg(x1), uncurry)), ENCARG(x0), ENCARG(cons_app(x1, uncurry))) ENCARG(cons_app(x0, cons_app(x1, swap))) -> c14(APP(encArg(x0), app(encArg(x1), swap)), ENCARG(x0), ENCARG(cons_app(x1, swap))) ENCARG(cons_app(x0, cons_app(x1, compose))) -> c14(APP(encArg(x0), app(encArg(x1), compose)), ENCARG(x0), ENCARG(cons_app(x1, compose))) ENCARG(cons_app(x0, cons_app(x1, const))) -> c14(APP(encArg(x0), app(encArg(x1), const)), ENCARG(x0), ENCARG(cons_app(x1, const))) ENCARG(cons_app(x0, cons_app(x1, listify))) -> c14(APP(encArg(x0), app(encArg(x1), listify)), ENCARG(x0), ENCARG(cons_app(x1, listify))) ENCARG(cons_app(x0, cons_app(x1, cons))) -> c14(APP(encArg(x0), app(encArg(x1), cons)), ENCARG(x0), ENCARG(cons_app(x1, cons))) ENCARG(cons_app(x0, cons_app(x1, nil))) -> c14(APP(encArg(x0), app(encArg(x1), nil)), ENCARG(x0), ENCARG(cons_app(x1, nil))) ENCARG(cons_app(x0, cons_app(x1, fold))) -> c14(APP(encArg(x0), app(encArg(x1), fold)), ENCARG(x0), ENCARG(cons_app(x1, fold))) ENCARG(cons_app(x0, cons_app(x1, sum))) -> c14(APP(encArg(x0), app(encArg(x1), sum)), ENCARG(x0), ENCARG(cons_app(x1, sum))) ENCARG(cons_app(x0, cons_app(x1, add))) -> c14(APP(encArg(x0), app(encArg(x1), add)), ENCARG(x0), ENCARG(cons_app(x1, add))) ENCARG(cons_app(x0, cons_app(x1, 0))) -> c14(APP(encArg(x0), app(encArg(x1), 0)), ENCARG(x0), ENCARG(cons_app(x1, 0))) ENCARG(cons_app(x0, cons_app(x1, 1))) -> c14(APP(encArg(x0), app(encArg(x1), 1)), ENCARG(x0), ENCARG(cons_app(x1, 1))) ENCARG(cons_app(x0, cons_app(x1, cons_app(z0, z1)))) -> c14(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(cons_app(x1, cons_app(z0, z1)))) ENCARG(cons_app(x0, cons_app(x1, cons_append))) -> c14(APP(encArg(x0), app(encArg(x1), append)), ENCARG(x0), ENCARG(cons_app(x1, cons_append))) ENCARG(cons_app(x0, cons_app(x1, cons_reverse))) -> c14(APP(encArg(x0), app(encArg(x1), reverse)), ENCARG(x0), ENCARG(cons_app(x1, cons_reverse))) ENCARG(cons_app(x0, cons_app(x1, cons_length))) -> c14(APP(encArg(x0), app(encArg(x1), length)), ENCARG(x0), ENCARG(cons_app(x1, cons_length))) ENCARG(cons_app(x0, cons_app(apply, x2))) -> c14(APP(encArg(x0), app(apply, encArg(x2))), ENCARG(x0), ENCARG(cons_app(apply, x2))) ENCARG(cons_app(x0, cons_app(id, x2))) -> c14(APP(encArg(x0), app(id, encArg(x2))), ENCARG(x0), ENCARG(cons_app(id, x2))) ENCARG(cons_app(x0, cons_app(uncurry, x2))) -> c14(APP(encArg(x0), app(uncurry, encArg(x2))), ENCARG(x0), ENCARG(cons_app(uncurry, x2))) ENCARG(cons_app(x0, cons_app(swap, x2))) -> c14(APP(encArg(x0), app(swap, encArg(x2))), ENCARG(x0), ENCARG(cons_app(swap, x2))) ENCARG(cons_app(x0, cons_app(compose, x2))) -> c14(APP(encArg(x0), app(compose, encArg(x2))), ENCARG(x0), ENCARG(cons_app(compose, x2))) ENCARG(cons_app(x0, cons_app(const, x2))) -> c14(APP(encArg(x0), app(const, encArg(x2))), ENCARG(x0), ENCARG(cons_app(const, x2))) ENCARG(cons_app(x0, cons_app(listify, x2))) -> c14(APP(encArg(x0), app(listify, encArg(x2))), ENCARG(x0), ENCARG(cons_app(listify, x2))) ENCARG(cons_app(x0, cons_app(cons, x2))) -> c14(APP(encArg(x0), app(cons, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons, x2))) ENCARG(cons_app(x0, cons_app(nil, x2))) -> c14(APP(encArg(x0), app(nil, encArg(x2))), ENCARG(x0), ENCARG(cons_app(nil, x2))) ENCARG(cons_app(x0, cons_app(fold, x2))) -> c14(APP(encArg(x0), app(fold, encArg(x2))), ENCARG(x0), ENCARG(cons_app(fold, x2))) ENCARG(cons_app(x0, cons_app(sum, x2))) -> c14(APP(encArg(x0), app(sum, encArg(x2))), ENCARG(x0), ENCARG(cons_app(sum, x2))) ENCARG(cons_app(x0, cons_app(add, x2))) -> c14(APP(encArg(x0), app(add, encArg(x2))), ENCARG(x0), ENCARG(cons_app(add, x2))) ENCARG(cons_app(x0, cons_app(0, x2))) -> c14(APP(encArg(x0), app(0, encArg(x2))), ENCARG(x0), ENCARG(cons_app(0, x2))) ENCARG(cons_app(x0, cons_app(1, x2))) -> c14(APP(encArg(x0), app(1, encArg(x2))), ENCARG(x0), ENCARG(cons_app(1, x2))) ENCARG(cons_app(x0, cons_app(cons_app(z0, z1), x2))) -> c14(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_app(z0, z1), x2))) ENCARG(cons_app(x0, cons_app(cons_append, x2))) -> c14(APP(encArg(x0), app(append, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_append, x2))) ENCARG(cons_app(x0, cons_app(cons_reverse, x2))) -> c14(APP(encArg(x0), app(reverse, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_reverse, x2))) ENCARG(cons_app(x0, cons_app(cons_length, x2))) -> c14(APP(encArg(x0), app(length, encArg(x2))), ENCARG(x0), ENCARG(cons_app(cons_length, x2))) ENCARG(cons_app(cons_app(z0, z1), cons_app(x1, x2))) -> c14(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2))), ENCARG(cons_app(z0, z1)), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(apply, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(id, cons_app(x1, x2))) -> c14(APP(id, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(uncurry, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(swap, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(compose, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(const, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(listify, cons_app(x1, x2))) -> c14(APP(listify, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(nil, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(fold, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(sum, cons_app(x1, x2))) -> c14(APP(sum, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(add, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(0, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(1, cons_app(x1, x2))) -> c14(ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_append, cons_app(x1, x2))) -> c14(APP(append, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_reverse, cons_app(x1, x2))) -> c14(APP(reverse, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_length, cons_app(x1, x2))) -> c14(APP(length, app(encArg(x1), encArg(x2))), ENCARG(cons_app(x1, x2))) ENCARG(cons_app(cons_app(x0, apply), x2)) -> c14(APP(app(encArg(x0), apply), encArg(x2)), ENCARG(cons_app(x0, apply)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, id), x2)) -> c14(APP(app(encArg(x0), id), encArg(x2)), ENCARG(cons_app(x0, id)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, uncurry), x2)) -> c14(APP(app(encArg(x0), uncurry), encArg(x2)), ENCARG(cons_app(x0, uncurry)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, swap), x2)) -> c14(APP(app(encArg(x0), swap), encArg(x2)), ENCARG(cons_app(x0, swap)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, compose), x2)) -> c14(APP(app(encArg(x0), compose), encArg(x2)), ENCARG(cons_app(x0, compose)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, const), x2)) -> c14(APP(app(encArg(x0), const), encArg(x2)), ENCARG(cons_app(x0, const)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, listify), x2)) -> c14(APP(app(encArg(x0), listify), encArg(x2)), ENCARG(cons_app(x0, listify)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons), x2)) -> c14(APP(app(encArg(x0), cons), encArg(x2)), ENCARG(cons_app(x0, cons)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, nil), x2)) -> c14(APP(app(encArg(x0), nil), encArg(x2)), ENCARG(cons_app(x0, nil)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, fold), x2)) -> c14(APP(app(encArg(x0), fold), encArg(x2)), ENCARG(cons_app(x0, fold)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, sum), x2)) -> c14(APP(app(encArg(x0), sum), encArg(x2)), ENCARG(cons_app(x0, sum)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, add), x2)) -> c14(APP(app(encArg(x0), add), encArg(x2)), ENCARG(cons_app(x0, add)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 0), x2)) -> c14(APP(app(encArg(x0), 0), encArg(x2)), ENCARG(cons_app(x0, 0)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, 1), x2)) -> c14(APP(app(encArg(x0), 1), encArg(x2)), ENCARG(cons_app(x0, 1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_app(z0, z1)), x2)) -> c14(APP(app(encArg(x0), app(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(cons_app(x0, cons_app(z0, z1))), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_append), x2)) -> c14(APP(app(encArg(x0), append), encArg(x2)), ENCARG(cons_app(x0, cons_append)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_reverse), x2)) -> c14(APP(app(encArg(x0), reverse), encArg(x2)), ENCARG(cons_app(x0, cons_reverse)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, cons_length), x2)) -> c14(APP(app(encArg(x0), length), encArg(x2)), ENCARG(cons_app(x0, cons_length)), ENCARG(x2)) ENCARG(cons_app(cons_app(apply, x1), x2)) -> c14(APP(app(apply, encArg(x1)), encArg(x2)), ENCARG(cons_app(apply, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(id, x1), x2)) -> c14(APP(app(id, encArg(x1)), encArg(x2)), ENCARG(cons_app(id, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(uncurry, x1), x2)) -> c14(APP(app(uncurry, encArg(x1)), encArg(x2)), ENCARG(cons_app(uncurry, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(const, x1), x2)) -> c14(APP(app(const, encArg(x1)), encArg(x2)), ENCARG(cons_app(const, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(listify, x1), x2)) -> c14(APP(app(listify, encArg(x1)), encArg(x2)), ENCARG(cons_app(listify, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(sum, x1), x2)) -> c14(APP(app(sum, encArg(x1)), encArg(x2)), ENCARG(cons_app(sum, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_app(z0, z1), x1), x2)) -> c14(APP(app(app(encArg(z0), encArg(z1)), encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_app(z0, z1), x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_append, x1), x2)) -> c14(APP(app(append, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_append, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_reverse, x1), x2)) -> c14(APP(app(reverse, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_reverse, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons_length, x1), x2)) -> c14(APP(app(length, encArg(x1)), encArg(x2)), ENCARG(cons_app(cons_length, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(x0, x1), apply)) -> c14(APP(app(encArg(x0), encArg(x1)), apply), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), id)) -> c14(APP(app(encArg(x0), encArg(x1)), id), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), uncurry)) -> c14(APP(app(encArg(x0), encArg(x1)), uncurry), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), swap)) -> c14(APP(app(encArg(x0), encArg(x1)), swap), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), compose)) -> c14(APP(app(encArg(x0), encArg(x1)), compose), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), const)) -> c14(APP(app(encArg(x0), encArg(x1)), const), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), listify)) -> c14(APP(app(encArg(x0), encArg(x1)), listify), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons)) -> c14(APP(app(encArg(x0), encArg(x1)), cons), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), nil)) -> c14(APP(app(encArg(x0), encArg(x1)), nil), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), fold)) -> c14(APP(app(encArg(x0), encArg(x1)), fold), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), sum)) -> c14(APP(app(encArg(x0), encArg(x1)), sum), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), add)) -> c14(APP(app(encArg(x0), encArg(x1)), add), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 0)) -> c14(APP(app(encArg(x0), encArg(x1)), 0), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), 1)) -> c14(APP(app(encArg(x0), encArg(x1)), 1), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_append)) -> c14(APP(app(encArg(x0), encArg(x1)), append), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_reverse)) -> c14(APP(app(encArg(x0), encArg(x1)), reverse), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(x0, x1), cons_length)) -> c14(APP(app(encArg(x0), encArg(x1)), length), ENCARG(cons_app(x0, x1))) ENCARG(cons_app(cons_app(swap, x1), x2)) -> c14(ENCARG(cons_app(swap, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(compose, x1), x2)) -> c14(ENCARG(cons_app(compose, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(cons, x1), x2)) -> c14(ENCARG(cons_app(cons, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(nil, x1), x2)) -> c14(ENCARG(cons_app(nil, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(fold, x1), x2)) -> c14(ENCARG(cons_app(fold, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(add, x1), x2)) -> c14(ENCARG(cons_app(add, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(0, x1), x2)) -> c14(ENCARG(cons_app(0, x1)), ENCARG(x2)) ENCARG(cons_app(cons_app(1, x1), x2)) -> c14(ENCARG(cons_app(1, x1)), ENCARG(x2)) ENCARG(cons_app(id, apply)) -> c14(APP(id, apply)) ENCARG(cons_app(listify, apply)) -> c14(APP(listify, apply)) ENCARG(cons_app(sum, apply)) -> c14(APP(sum, apply)) ENCARG(cons_app(cons_append, apply)) -> c14(APP(append, apply)) ENCARG(cons_app(cons_reverse, apply)) -> c14(APP(reverse, apply)) ENCARG(cons_app(cons_length, apply)) -> c14(APP(length, apply)) ENCARG(cons_app(id, id)) -> c14(APP(id, id)) ENCARG(cons_app(listify, id)) -> c14(APP(listify, id)) ENCARG(cons_app(sum, id)) -> c14(APP(sum, id)) ENCARG(cons_app(cons_append, id)) -> c14(APP(append, id)) ENCARG(cons_app(cons_reverse, id)) -> c14(APP(reverse, id)) ENCARG(cons_app(cons_length, id)) -> c14(APP(length, id)) ENCARG(cons_app(id, uncurry)) -> c14(APP(id, uncurry)) ENCARG(cons_app(listify, uncurry)) -> c14(APP(listify, uncurry)) ENCARG(cons_app(sum, uncurry)) -> c14(APP(sum, uncurry)) ENCARG(cons_app(cons_append, uncurry)) -> c14(APP(append, uncurry)) ENCARG(cons_app(cons_reverse, uncurry)) -> c14(APP(reverse, uncurry)) ENCARG(cons_app(cons_length, uncurry)) -> c14(APP(length, uncurry)) ENCARG(cons_app(id, swap)) -> c14(APP(id, swap)) ENCARG(cons_app(listify, swap)) -> c14(APP(listify, swap)) ENCARG(cons_app(sum, swap)) -> c14(APP(sum, swap)) ENCARG(cons_app(cons_append, swap)) -> c14(APP(append, swap)) ENCARG(cons_app(cons_reverse, swap)) -> c14(APP(reverse, swap)) ENCARG(cons_app(cons_length, swap)) -> c14(APP(length, swap)) ENCARG(cons_app(id, compose)) -> c14(APP(id, compose)) ENCARG(cons_app(listify, compose)) -> c14(APP(listify, compose)) ENCARG(cons_app(sum, compose)) -> c14(APP(sum, compose)) ENCARG(cons_app(cons_append, compose)) -> c14(APP(append, compose)) ENCARG(cons_app(cons_reverse, compose)) -> c14(APP(reverse, compose)) ENCARG(cons_app(cons_length, compose)) -> c14(APP(length, compose)) ENCARG(cons_app(id, const)) -> c14(APP(id, const)) ENCARG(cons_app(listify, const)) -> c14(APP(listify, const)) ENCARG(cons_app(sum, const)) -> c14(APP(sum, const)) ENCARG(cons_app(cons_append, const)) -> c14(APP(append, const)) ENCARG(cons_app(cons_reverse, const)) -> c14(APP(reverse, const)) ENCARG(cons_app(cons_length, const)) -> c14(APP(length, const)) ENCARG(cons_app(id, listify)) -> c14(APP(id, listify)) ENCARG(cons_app(listify, listify)) -> c14(APP(listify, listify)) ENCARG(cons_app(sum, listify)) -> c14(APP(sum, listify)) ENCARG(cons_app(cons_append, listify)) -> c14(APP(append, listify)) ENCARG(cons_app(cons_reverse, listify)) -> c14(APP(reverse, listify)) ENCARG(cons_app(cons_length, listify)) -> c14(APP(length, listify)) ENCARG(cons_app(id, cons)) -> c14(APP(id, cons)) ENCARG(cons_app(listify, cons)) -> c14(APP(listify, cons)) ENCARG(cons_app(sum, cons)) -> c14(APP(sum, cons)) ENCARG(cons_app(cons_append, cons)) -> c14(APP(append, cons)) ENCARG(cons_app(cons_reverse, cons)) -> c14(APP(reverse, cons)) ENCARG(cons_app(cons_length, cons)) -> c14(APP(length, cons)) ENCARG(cons_app(id, nil)) -> c14(APP(id, nil)) ENCARG(cons_app(listify, nil)) -> c14(APP(listify, nil)) ENCARG(cons_app(sum, nil)) -> c14(APP(sum, nil)) ENCARG(cons_app(cons_append, nil)) -> c14(APP(append, nil)) ENCARG(cons_app(cons_reverse, nil)) -> c14(APP(reverse, nil)) ENCARG(cons_app(cons_length, nil)) -> c14(APP(length, nil)) ENCARG(cons_app(id, fold)) -> c14(APP(id, fold)) ENCARG(cons_app(listify, fold)) -> c14(APP(listify, fold)) ENCARG(cons_app(sum, fold)) -> c14(APP(sum, fold)) ENCARG(cons_app(cons_append, fold)) -> c14(APP(append, fold)) ENCARG(cons_app(cons_reverse, fold)) -> c14(APP(reverse, fold)) ENCARG(cons_app(cons_length, fold)) -> c14(APP(length, fold)) ENCARG(cons_app(id, sum)) -> c14(APP(id, sum)) ENCARG(cons_app(listify, sum)) -> c14(APP(listify, sum)) ENCARG(cons_app(sum, sum)) -> c14(APP(sum, sum)) ENCARG(cons_app(cons_append, sum)) -> c14(APP(append, sum)) ENCARG(cons_app(cons_reverse, sum)) -> c14(APP(reverse, sum)) ENCARG(cons_app(cons_length, sum)) -> c14(APP(length, sum)) ENCARG(cons_app(id, add)) -> c14(APP(id, add)) ENCARG(cons_app(listify, add)) -> c14(APP(listify, add)) ENCARG(cons_app(sum, add)) -> c14(APP(sum, add)) ENCARG(cons_app(cons_append, add)) -> c14(APP(append, add)) ENCARG(cons_app(cons_reverse, add)) -> c14(APP(reverse, add)) ENCARG(cons_app(cons_length, add)) -> c14(APP(length, add)) ENCARG(cons_app(id, 0)) -> c14(APP(id, 0)) ENCARG(cons_app(listify, 0)) -> c14(APP(listify, 0)) ENCARG(cons_app(sum, 0)) -> c14(APP(sum, 0)) ENCARG(cons_app(cons_append, 0)) -> c14(APP(append, 0)) ENCARG(cons_app(cons_reverse, 0)) -> c14(APP(reverse, 0)) ENCARG(cons_app(cons_length, 0)) -> c14(APP(length, 0)) ENCARG(cons_app(id, 1)) -> c14(APP(id, 1)) ENCARG(cons_app(listify, 1)) -> c14(APP(listify, 1)) ENCARG(cons_app(sum, 1)) -> c14(APP(sum, 1)) ENCARG(cons_app(cons_append, 1)) -> c14(APP(append, 1)) ENCARG(cons_app(cons_reverse, 1)) -> c14(APP(reverse, 1)) ENCARG(cons_app(cons_length, 1)) -> c14(APP(length, 1)) ENCARG(cons_app(x0, cons_append)) -> c14(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id)), ENCARG(x0)) ENCARG(cons_app(id, cons_append)) -> c14(APP(id, append)) ENCARG(cons_app(listify, cons_append)) -> c14(APP(listify, append)) ENCARG(cons_app(sum, cons_append)) -> c14(APP(sum, append)) ENCARG(cons_app(cons_append, cons_append)) -> c14(APP(append, append)) ENCARG(cons_app(cons_reverse, cons_append)) -> c14(APP(reverse, append)) ENCARG(cons_app(cons_length, cons_append)) -> c14(APP(length, append)) ENCARG(cons_app(x0, cons_reverse)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil)), ENCARG(x0)) ENCARG(cons_app(id, cons_reverse)) -> c14(APP(id, reverse)) ENCARG(cons_app(listify, cons_reverse)) -> c14(APP(listify, reverse)) ENCARG(cons_app(sum, cons_reverse)) -> c14(APP(sum, reverse)) ENCARG(cons_app(cons_append, cons_reverse)) -> c14(APP(append, reverse)) ENCARG(cons_app(cons_reverse, cons_reverse)) -> c14(APP(reverse, reverse)) ENCARG(cons_app(cons_length, cons_reverse)) -> c14(APP(length, reverse)) ENCARG(cons_app(x0, cons_length)) -> c14(APP(encArg(x0), app(app(uncurry, app(app(fold, add), app(cons, 1))), 0)), ENCARG(x0)) ENCARG(cons_app(id, cons_length)) -> c14(APP(id, length)) ENCARG(cons_app(listify, cons_length)) -> c14(APP(listify, length)) ENCARG(cons_app(sum, cons_length)) -> c14(APP(sum, length)) ENCARG(cons_app(cons_append, cons_length)) -> c14(APP(append, length)) ENCARG(cons_app(cons_reverse, cons_length)) -> c14(APP(reverse, length)) ENCARG(cons_app(cons_length, cons_length)) -> c14(APP(length, length)) ENCARG(cons_app(cons_append, x0)) -> c14(APP(app(app(compose, app(app(swap, fold), cons)), id), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_reverse, x0)) -> c14(APP(app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil), encArg(x0)), ENCARG(x0)) ENCARG(cons_app(cons_length, x0)) -> c14(APP(app(app(uncurry, app(app(fold, add), app(cons, 1))), 0), encArg(x0)), ENCARG(x0)) ENCODE_APP(cons_app(z0, z1), apply) -> c(APP(app(encArg(z0), encArg(z1)), apply)) ENCODE_APP(cons_append, apply) -> c(APP(append, apply)) ENCODE_APP(cons_reverse, apply) -> c(APP(reverse, apply)) ENCODE_APP(cons_length, apply) -> c(APP(length, apply)) ENCODE_APP(cons_app(z0, z1), id) -> c(APP(app(encArg(z0), encArg(z1)), id)) ENCODE_APP(cons_append, id) -> c(APP(append, id)) ENCODE_APP(cons_reverse, id) -> c(APP(reverse, id)) ENCODE_APP(cons_length, id) -> c(APP(length, id)) ENCODE_APP(cons_app(z0, z1), uncurry) -> c(APP(app(encArg(z0), encArg(z1)), uncurry)) ENCODE_APP(cons_append, uncurry) -> c(APP(append, uncurry)) ENCODE_APP(cons_reverse, uncurry) -> c(APP(reverse, uncurry)) ENCODE_APP(cons_length, uncurry) -> c(APP(length, uncurry)) ENCODE_APP(cons_app(z0, z1), swap) -> c(APP(app(encArg(z0), encArg(z1)), swap)) ENCODE_APP(cons_append, swap) -> c(APP(append, swap)) ENCODE_APP(cons_reverse, swap) -> c(APP(reverse, swap)) ENCODE_APP(cons_length, swap) -> c(APP(length, swap)) ENCODE_APP(cons_app(z0, z1), compose) -> c(APP(app(encArg(z0), encArg(z1)), compose)) ENCODE_APP(cons_append, compose) -> c(APP(append, compose)) ENCODE_APP(cons_reverse, compose) -> c(APP(reverse, compose)) ENCODE_APP(cons_length, compose) -> c(APP(length, compose)) ENCODE_APP(cons_app(z0, z1), const) -> c(APP(app(encArg(z0), encArg(z1)), const)) ENCODE_APP(cons_append, const) -> c(APP(append, const)) ENCODE_APP(cons_reverse, const) -> c(APP(reverse, const)) ENCODE_APP(cons_length, const) -> c(APP(length, const)) ENCODE_APP(cons_app(z0, z1), listify) -> c(APP(app(encArg(z0), encArg(z1)), listify)) ENCODE_APP(cons_append, listify) -> c(APP(append, listify)) ENCODE_APP(cons_reverse, listify) -> c(APP(reverse, listify)) ENCODE_APP(cons_length, listify) -> c(APP(length, listify)) ENCODE_APP(cons_app(z0, z1), cons) -> c(APP(app(encArg(z0), encArg(z1)), cons)) ENCODE_APP(cons_append, cons) -> c(APP(append, cons)) ENCODE_APP(cons_reverse, cons) -> c(APP(reverse, cons)) ENCODE_APP(cons_length, cons) -> c(APP(length, cons)) ENCODE_APP(cons_app(z0, z1), nil) -> c(APP(app(encArg(z0), encArg(z1)), nil)) ENCODE_APP(cons_append, nil) -> c(APP(append, nil)) ENCODE_APP(cons_reverse, nil) -> c(APP(reverse, nil)) ENCODE_APP(cons_length, nil) -> c(APP(length, nil)) ENCODE_APP(cons_app(z0, z1), fold) -> c(APP(app(encArg(z0), encArg(z1)), fold)) ENCODE_APP(cons_append, fold) -> c(APP(append, fold)) ENCODE_APP(cons_reverse, fold) -> c(APP(reverse, fold)) ENCODE_APP(cons_length, fold) -> c(APP(length, fold)) ENCODE_APP(cons_app(z0, z1), sum) -> c(APP(app(encArg(z0), encArg(z1)), sum)) ENCODE_APP(cons_append, sum) -> c(APP(append, sum)) ENCODE_APP(cons_reverse, sum) -> c(APP(reverse, sum)) ENCODE_APP(cons_length, sum) -> c(APP(length, sum)) ENCODE_APP(cons_app(z0, z1), add) -> c(APP(app(encArg(z0), encArg(z1)), add)) ENCODE_APP(cons_append, add) -> c(APP(append, add)) ENCODE_APP(cons_reverse, add) -> c(APP(reverse, add)) ENCODE_APP(cons_length, add) -> c(APP(length, add)) ENCODE_APP(cons_app(z0, z1), 0) -> c(APP(app(encArg(z0), encArg(z1)), 0)) ENCODE_APP(cons_append, 0) -> c(APP(append, 0)) ENCODE_APP(cons_reverse, 0) -> c(APP(reverse, 0)) ENCODE_APP(cons_length, 0) -> c(APP(length, 0)) ENCODE_APP(cons_app(z0, z1), 1) -> c(APP(app(encArg(z0), encArg(z1)), 1)) ENCODE_APP(cons_append, 1) -> c(APP(append, 1)) ENCODE_APP(cons_reverse, 1) -> c(APP(reverse, 1)) ENCODE_APP(cons_length, 1) -> c(APP(length, 1)) ENCODE_APP(x0, cons_app(x1, apply)) -> c(APP(encArg(x0), app(encArg(x1), apply))) ENCODE_APP(x0, cons_app(x1, id)) -> c(APP(encArg(x0), app(encArg(x1), id))) ENCODE_APP(x0, cons_app(x1, uncurry)) -> c(APP(encArg(x0), app(encArg(x1), uncurry))) ENCODE_APP(x0, cons_app(x1, swap)) -> c(APP(encArg(x0), app(encArg(x1), swap))) ENCODE_APP(x0, cons_app(x1, compose)) -> c(APP(encArg(x0), app(encArg(x1), compose))) ENCODE_APP(x0, cons_app(x1, const)) -> c(APP(encArg(x0), app(encArg(x1), const))) ENCODE_APP(x0, cons_app(x1, listify)) -> c(APP(encArg(x0), app(encArg(x1), listify))) ENCODE_APP(x0, cons_app(x1, cons)) -> c(APP(encArg(x0), app(encArg(x1), cons))) ENCODE_APP(x0, cons_app(x1, nil)) -> c(APP(encArg(x0), app(encArg(x1), nil))) ENCODE_APP(x0, cons_app(x1, fold)) -> c(APP(encArg(x0), app(encArg(x1), fold))) ENCODE_APP(x0, cons_app(x1, sum)) -> c(APP(encArg(x0), app(encArg(x1), sum))) ENCODE_APP(x0, cons_app(x1, add)) -> c(APP(encArg(x0), app(encArg(x1), add))) ENCODE_APP(x0, cons_app(x1, 0)) -> c(APP(encArg(x0), app(encArg(x1), 0))) ENCODE_APP(x0, cons_app(x1, 1)) -> c(APP(encArg(x0), app(encArg(x1), 1))) ENCODE_APP(x0, cons_app(x1, cons_app(z0, z1))) -> c(APP(encArg(x0), app(encArg(x1), app(encArg(z0), encArg(z1))))) ENCODE_APP(x0, cons_app(x1, cons_append)) -> c(APP(encArg(x0), app(encArg(x1), append))) ENCODE_APP(x0, cons_app(x1, cons_reverse)) -> c(APP(encArg(x0), app(encArg(x1), reverse))) ENCODE_APP(x0, cons_app(x1, cons_length)) -> c(APP(encArg(x0), app(encArg(x1), length))) ENCODE_APP(x0, cons_app(apply, x2)) -> c(APP(encArg(x0), app(apply, encArg(x2)))) ENCODE_APP(x0, cons_app(id, x2)) -> c(APP(encArg(x0), app(id, encArg(x2)))) ENCODE_APP(x0, cons_app(uncurry, x2)) -> c(APP(encArg(x0), app(uncurry, encArg(x2)))) ENCODE_APP(x0, cons_app(swap, x2)) -> c(APP(encArg(x0), app(swap, encArg(x2)))) ENCODE_APP(x0, cons_app(compose, x2)) -> c(APP(encArg(x0), app(compose, encArg(x2)))) ENCODE_APP(x0, cons_app(const, x2)) -> c(APP(encArg(x0), app(const, encArg(x2)))) ENCODE_APP(x0, cons_app(listify, x2)) -> c(APP(encArg(x0), app(listify, encArg(x2)))) ENCODE_APP(x0, cons_app(cons, x2)) -> c(APP(encArg(x0), app(cons, encArg(x2)))) ENCODE_APP(x0, cons_app(nil, x2)) -> c(APP(encArg(x0), app(nil, encArg(x2)))) ENCODE_APP(x0, cons_app(fold, x2)) -> c(APP(encArg(x0), app(fold, encArg(x2)))) ENCODE_APP(x0, cons_app(sum, x2)) -> c(APP(encArg(x0), app(sum, encArg(x2)))) ENCODE_APP(x0, cons_app(add, x2)) -> c(APP(encArg(x0), app(add, encArg(x2)))) ENCODE_APP(x0, cons_app(0, x2)) -> c(APP(encArg(x0), app(0, encArg(x2)))) ENCODE_APP(x0, cons_app(1, x2)) -> c(APP(encArg(x0), app(1, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_app(z0, z1), x2)) -> c(APP(encArg(x0), app(app(encArg(z0), encArg(z1)), encArg(x2)))) ENCODE_APP(x0, cons_app(cons_append, x2)) -> c(APP(encArg(x0), app(append, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_reverse, x2)) -> c(APP(encArg(x0), app(reverse, encArg(x2)))) ENCODE_APP(x0, cons_app(cons_length, x2)) -> c(APP(encArg(x0), app(length, encArg(x2)))) ENCODE_APP(id, cons_app(x1, x2)) -> c(APP(id, app(encArg(x1), encArg(x2)))) ENCODE_APP(listify, cons_app(x1, x2)) -> c(APP(listify, app(encArg(x1), encArg(x2)))) ENCODE_APP(sum, cons_app(x1, x2)) -> c(APP(sum, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_app(z0, z1), cons_app(x1, x2)) -> c(APP(app(encArg(z0), encArg(z1)), app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_append, cons_app(x1, x2)) -> c(APP(append, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_reverse, cons_app(x1, x2)) -> c(APP(reverse, app(encArg(x1), encArg(x2)))) ENCODE_APP(cons_length, cons_app(x1, x2)) -> c(APP(length, app(encArg(x1), encArg(x2)))) ENCODE_APP(x0, cons_append) -> c(APP(encArg(x0), app(app(compose, app(app(swap, fold), cons)), id))) ENCODE_APP(id, cons_append) -> c(APP(id, append)) ENCODE_APP(listify, cons_append) -> c(APP(listify, append)) ENCODE_APP(sum, cons_append) -> c(APP(sum, append)) ENCODE_APP(cons_app(z0, z1), cons_append) -> c(APP(app(encArg(z0), encArg(z1)), append)) ENCODE_APP(cons_append, cons_append) -> c(APP(append, append)) ENCODE_APP(cons_reverse, cons_append) -> c(APP(reverse, append)) ENCODE_APP(cons_length, cons_append) -> c(APP(length, append)) ENCODE_APP(x0, cons_reverse) -> c(APP(encArg(x0), app(app(uncurry, app(app(fold, app(swap, append)), listify)), nil))) ENCODE_APP(id, cons_reverse) -> c(APP(id, reverse)) ENCODE_APP(listify, cons_reverse) -> c(APP(listify, reverse)) ENCODE_APP(sum, cons_reverse) -> c(APP(sum, reverse)) ENCODE_APP(cons_app(z0, z1), cons_reverse) -> c(APP(app(encArg(z0), encArg(z1)), reverse)) ENCODE_APP(cons_append, cons_reverse) -> c(APP(append, reverse)) ENCODE_APP(cons_reverse, cons_reverse) -> c(APP(reverse, reverse)) ENCODE_APP(cons_length, cons_reverse) -> c(APP(length, reverse)) S tuples: APP(app(apply, z0), z1) -> c36(APP(z0, z1)) APP(id, z0) -> c37 APP(app(app(uncurry, z0), z1), z2) -> c38(APP(app(z0, z1), z2), APP(z0, z1)) APP(app(app(swap, z0), z1), z2) -> c39(APP(app(z0, z2), z1), APP(z0, z2)) APP(app(app(compose, z0), z1), z2) -> c40(APP(z0, app(z1, z2)), APP(z1, z2)) APP(app(const, z0), z1) -> c41 APP(app(app(app(fold, z0), z1), z2), nil) -> c43 APP(app(uncurry, app(app(fold, cons), id)), nil) -> c46 APP(listify, z0) -> c42 APP(app(app(app(fold, z0), z1), z2), app(app(cons, z3), z4)) -> c44(APP(app(z0, app(z1, z3)), app(app(app(app(fold, z0), z1), z2), z4)), APP(z0, app(z1, z3)), APP(z1, z3), APP(app(app(app(fold, z0), z1), z2), z4)) APP(sum, z0) -> c45(APP(app(app(app(fold, add), id), 0), z0)) K tuples:none Defined Rule Symbols: encArg_1, app_2, append, reverse, length Defined Pair Symbols: APP_2, ENCARG_1, ENCODE_APP_2 Compound Symbols: c36_1, c37, c38_2, c39_2, c40_2, c41, c43, c46, c42, c44_4, c45_1, c14_1, c14_2, c_1, c14_3