/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?, O(n^1)) proof of /export/starexec/sandbox/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, n^1). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 171 ms] (4) CpxRelTRS (5) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (6) CdtProblem (7) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (8) CdtProblem (9) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CdtProblem (11) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (12) CdtProblem (13) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CdtProblem (15) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CdtProblem (17) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CdtProblem (19) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CdtProblem (21) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CdtProblem (23) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (24) CdtProblem (25) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CdtProblem (27) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (28) CdtProblem (29) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CdtProblem (31) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 54 ms] (32) CdtProblem (33) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (34) CdtProblem (35) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (40) CdtProblem (41) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CdtProblem (43) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 65 ms] (46) CdtProblem (47) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 28 ms] (48) CdtProblem (49) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 9 ms] (50) CdtProblem (51) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 17 ms] (52) CdtProblem (53) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 92 ms] (54) CdtProblem (55) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 44 ms] (56) CdtProblem (57) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 28 ms] (58) CdtProblem (59) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 33 ms] (60) CdtProblem (61) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 132 ms] (62) CdtProblem (63) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 15 ms] (64) CdtProblem (65) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 90 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 44 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 30 ms] (70) CdtProblem (71) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 22 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 90 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (86) CdtProblem (87) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 22 ms] (96) CdtProblem (97) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 338 ms] (98) CdtProblem (99) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 21 ms] (104) CdtProblem (105) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 333 ms] (106) CdtProblem (107) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 12 ms] (112) CdtProblem (113) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 344 ms] (114) CdtProblem (115) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 366 ms] (116) CdtProblem (117) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] (118) BOUNDS(1, 1) ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: f(0, 1, x) -> f(h(x), h(x), x) h(0) -> 0 h(g(x, y)) -> y 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(0) -> 0 encArg(1) -> 1 encArg(g(x_1, x_2)) -> g(encArg(x_1), encArg(x_2)) encArg(cons_f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_h(x_1)) -> h(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_0 -> 0 encode_1 -> 1 encode_h(x_1) -> h(encArg(x_1)) encode_g(x_1, x_2) -> g(encArg(x_1), encArg(x_2)) ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: f(0, 1, x) -> f(h(x), h(x), x) h(0) -> 0 h(g(x, y)) -> y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(x_1, x_2)) -> g(encArg(x_1), encArg(x_2)) encArg(cons_f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_h(x_1)) -> h(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_0 -> 0 encode_1 -> 1 encode_h(x_1) -> h(encArg(x_1)) encode_g(x_1, x_2) -> g(encArg(x_1), encArg(x_2)) 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, n^1). The TRS R consists of the following rules: f(0, 1, x) -> f(h(x), h(x), x) h(0) -> 0 h(g(x, y)) -> y The (relative) TRS S consists of the following rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(x_1, x_2)) -> g(encArg(x_1), encArg(x_2)) encArg(cons_f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_h(x_1)) -> h(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_0 -> 0 encode_1 -> 1 encode_h(x_1) -> h(encArg(x_1)) encode_g(x_1, x_2) -> g(encArg(x_1), encArg(x_2)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) encode_0 -> 0 encode_1 -> 1 encode_h(z0) -> h(encArg(z0)) encode_g(z0, z1) -> g(encArg(z0), encArg(z1)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(0) -> c ENCARG(1) -> c1 ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_f(z0, z1, z2)) -> c3(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) ENCODE_F(z0, z1, z2) -> c5(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_0 -> c6 ENCODE_1 -> c7 ENCODE_H(z0) -> c8(H(encArg(z0)), ENCARG(z0)) ENCODE_G(z0, z1) -> c9(ENCARG(z0), ENCARG(z1)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: f_3, h_1, encArg_1, encode_f_3, encode_0, encode_1, encode_h_1, encode_g_2 Defined Pair Symbols: ENCARG_1, ENCODE_F_3, ENCODE_0, ENCODE_1, ENCODE_H_1, ENCODE_G_2, F_3, H_1 Compound Symbols: c, c1, c2_2, c3_4, c4_2, c5_4, c6, c7, c8_2, c9_2, c10_3, c11, c12 ---------------------------------------- (7) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: ENCODE_G(z0, z1) -> c9(ENCARG(z0), ENCARG(z1)) Removed 4 trailing nodes: ENCARG(1) -> c1 ENCARG(0) -> c ENCODE_0 -> c6 ENCODE_1 -> c7 ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) encode_0 -> 0 encode_1 -> 1 encode_h(z0) -> h(encArg(z0)) encode_g(z0, z1) -> g(encArg(z0), encArg(z1)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_f(z0, z1, z2)) -> c3(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) ENCODE_F(z0, z1, z2) -> c5(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_H(z0) -> c8(H(encArg(z0)), ENCARG(z0)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: f_3, h_1, encArg_1, encode_f_3, encode_0, encode_1, encode_h_1, encode_g_2 Defined Pair Symbols: ENCARG_1, ENCODE_F_3, ENCODE_H_1, F_3, H_1 Compound Symbols: c2_2, c3_4, c4_2, c5_4, c8_2, c10_3, c11, c12 ---------------------------------------- (9) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (10) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) encode_0 -> 0 encode_1 -> 1 encode_h(z0) -> h(encArg(z0)) encode_g(z0, z1) -> g(encArg(z0), encArg(z1)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_f(z0, z1, z2)) -> c3(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_F(z0, z1, z2) -> c(ENCARG(z0)) ENCODE_F(z0, z1, z2) -> c(ENCARG(z1)) ENCODE_F(z0, z1, z2) -> c(ENCARG(z2)) ENCODE_H(z0) -> c(H(encArg(z0))) ENCODE_H(z0) -> c(ENCARG(z0)) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: f_3, h_1, encArg_1, encode_f_3, encode_0, encode_1, encode_h_1, encode_g_2 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c3_4, c4_2, c10_3, c11, c12, c_1 ---------------------------------------- (11) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 4 leading nodes: ENCODE_F(z0, z1, z2) -> c(ENCARG(z0)) ENCODE_F(z0, z1, z2) -> c(ENCARG(z1)) ENCODE_F(z0, z1, z2) -> c(ENCARG(z2)) ENCODE_H(z0) -> c(ENCARG(z0)) ---------------------------------------- (12) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) encode_0 -> 0 encode_1 -> 1 encode_h(z0) -> h(encArg(z0)) encode_g(z0, z1) -> g(encArg(z0), encArg(z1)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_f(z0, z1, z2)) -> c3(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: f_3, h_1, encArg_1, encode_f_3, encode_0, encode_1, encode_h_1, encode_g_2 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c3_4, c4_2, c10_3, c11, c12, c_1 ---------------------------------------- (13) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) encode_0 -> 0 encode_1 -> 1 encode_h(z0) -> h(encArg(z0)) encode_g(z0, z1) -> g(encArg(z0), encArg(z1)) ---------------------------------------- (14) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_f(z0, z1, z2)) -> c3(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c3_4, c4_2, c10_3, c11, c12, c_1 ---------------------------------------- (15) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(z0, z1, z2)) -> c3(F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) by ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1), ENCARG(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1), ENCARG(1)) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, 0, x2)) -> c3(F(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(1), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(F(1, encArg(x1), encArg(x2)), ENCARG(1), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ---------------------------------------- (16) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1), ENCARG(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1), ENCARG(1)) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, 0, x2)) -> c3(F(encArg(x0), 0, encArg(x2)), ENCARG(x0), ENCARG(0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(1), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(0), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(F(1, encArg(x1), encArg(x2)), ENCARG(1), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c4_2, c10_3, c11, c12, c_1, c3_4 ---------------------------------------- (17) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 10 trailing tuple parts ---------------------------------------- (18) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c4_2, c10_3, c11, c12, c_1, c3_4, c3_3, c3_2 ---------------------------------------- (19) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_h(z0)) -> c4(H(encArg(z0)), ENCARG(z0)) by ENCARG(cons_h(0)) -> c4(H(0), ENCARG(0)) ENCARG(cons_h(1)) -> c4(H(1), ENCARG(1)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ---------------------------------------- (20) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(0)) -> c4(H(0), ENCARG(0)) ENCARG(cons_h(1)) -> c4(H(1), ENCARG(1)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c10_3, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2 ---------------------------------------- (21) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ENCARG(cons_h(1)) -> c4(H(1), ENCARG(1)) ---------------------------------------- (22) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(0)) -> c4(H(0), ENCARG(0)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c10_3, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2 ---------------------------------------- (23) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (24) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) S tuples: F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) H(0) -> c11 H(g(z0, z1)) -> c12 K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, F_3, H_1, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c10_3, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1 ---------------------------------------- (25) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace F(0, 1, z0) -> c10(F(h(z0), h(z0), z0), H(z0), H(z0)) by F(0, 1, 0) -> c10(F(h(0), 0, 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ---------------------------------------- (26) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, x1, 1)) -> c3(F(encArg(x0), encArg(x1), 1), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, 0) -> c10(F(h(0), 0, 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, 0) -> c10(F(h(0), 0, 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, ENCODE_F_3, ENCODE_H_1, F_3 Compound Symbols: c2_2, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3 ---------------------------------------- (27) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (28) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c10(H(0), H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(H(0), H(0)) K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, ENCODE_F_3, ENCODE_H_1, F_3 Compound Symbols: c2_2, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c10_2 ---------------------------------------- (29) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c1(H(0)) K tuples:none Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, ENCODE_F_3, ENCODE_H_1, F_3 Compound Symbols: c2_2, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1 ---------------------------------------- (31) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. F(0, 1, 0) -> c1(H(0)) We considered the (Usable) Rules:none And the Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = [1] POL(1) = [1] POL(ENCARG(x_1)) = x_1 POL(ENCODE_F(x_1, x_2, x_3)) = [1] POL(ENCODE_H(x_1)) = 0 POL(F(x_1, x_2, x_3)) = [1] POL(H(x_1)) = 0 POL(c(x_1)) = x_1 POL(c1(x_1)) = x_1 POL(c10(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c11) = 0 POL(c12) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c3(x_1, x_2)) = x_1 + x_2 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c4(x_1)) = x_1 POL(c4(x_1, x_2)) = x_1 + x_2 POL(cons_f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_h(x_1)) = [1] + x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(g(x_1, x_2)) = [1] + x_1 + x_2 POL(h(x_1)) = [1] ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, ENCODE_F_3, ENCODE_H_1, F_3 Compound Symbols: c2_2, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1 ---------------------------------------- (33) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_F(z0, z1, z2) -> c(F(encArg(z0), encArg(z1), encArg(z2))) by ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, 1) -> c(F(encArg(x0), encArg(x1), 1)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 0, x2) -> c(F(encArg(x0), 0, encArg(x2))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, g(z0, z1), x2) -> c(F(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(1, x1, x2) -> c(F(1, encArg(x1), encArg(x2))) ENCODE_F(g(z0, z1), x1, x2) -> c(F(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, 1) -> c(F(encArg(x0), encArg(x1), 1)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 0, x2) -> c(F(encArg(x0), 0, encArg(x2))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, g(z0, z1), x2) -> c(F(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(1, x1, x2) -> c(F(1, encArg(x1), encArg(x2))) ENCODE_F(g(z0, z1), x1, x2) -> c(F(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, ENCODE_H_1, F_3, ENCODE_F_3 Compound Symbols: c2_2, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1 ---------------------------------------- (35) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing nodes: ENCODE_F(g(z0, z1), x1, x2) -> c(F(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))) ENCODE_F(1, x1, x2) -> c(F(1, encArg(x1), encArg(x2))) ENCODE_F(x0, x1, 1) -> c(F(encArg(x0), encArg(x1), 1)) ENCODE_F(x0, 0, x2) -> c(F(encArg(x0), 0, encArg(x2))) ENCODE_F(x0, g(z0, z1), x2) -> c(F(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2))) ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCODE_H(z0) -> c(H(encArg(z0))) ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, ENCODE_H_1, F_3, ENCODE_F_3 Compound Symbols: c2_2, c11, c12, c_1, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1 ---------------------------------------- (37) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCODE_H(z0) -> c(H(encArg(z0))) by ENCODE_H(0) -> c(H(0)) ENCODE_H(1) -> c(H(1)) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(0) -> c(H(0)) ENCODE_H(1) -> c(H(1)) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1 ---------------------------------------- (39) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: ENCODE_H(0) -> c(H(0)) Removed 1 trailing nodes: ENCODE_H(1) -> c(H(1)) ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1 ---------------------------------------- (41) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, x1, g(z0, z1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(x1), ENCARG(g(z0, z1))) by ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(F(encArg(x0), 0, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(0), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(F(1, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(1), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(F(encArg(x0), 0, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(0), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(F(1, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(1), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (43) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (45) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) by ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 0, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), g(encArg(z0), encArg(z1)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(1, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(g(encArg(z0), encArg(z1)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 0, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(0), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(F(1, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(1), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 0, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), g(encArg(z0), encArg(z1)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(1, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(g(encArg(z0), encArg(z1)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 0, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(0), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(F(1, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(1), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (47) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 12 trailing tuple parts ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (49) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, x1, cons_h(z0))) -> c3(F(encArg(x0), encArg(x1), h(encArg(z0))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(z0))) by ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(F(encArg(x0), encArg(x1), h(1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(1))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(F(encArg(x0), 0, h(encArg(x2))), ENCARG(x0), ENCARG(0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), h(encArg(x2))), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(0), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(F(1, encArg(x1), h(encArg(x2))), ENCARG(1), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), h(encArg(x2))), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(F(encArg(x0), encArg(x1), h(1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(1))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(F(encArg(x0), 0, h(encArg(x2))), ENCARG(x0), ENCARG(0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), h(encArg(x2))), ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(0), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(F(1, encArg(x1), h(encArg(x2))), ENCARG(1), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), h(encArg(x2))), ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (51) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 10 trailing tuple parts ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (53) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) by ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(0)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 1), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(1)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), g(z0, z1))) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), cons_f(z0, z1, z2))) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), cons_h(z0))) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), h(encArg(z0))), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 0, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), g(encArg(z0), encArg(z1)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(F(encArg(x0), f(1, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(F(encArg(x0), f(g(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(0), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(F(1, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(1), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(F(g(encArg(z0), encArg(z1)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(0)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 1), ENCARG(x0), ENCARG(cons_f(x1, x2, x3)), ENCARG(1)) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 0, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), g(encArg(z0), encArg(z1)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(F(encArg(x0), f(1, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(F(encArg(x0), f(g(encArg(z0), encArg(z1)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(0), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(F(1, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(1), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(F(g(encArg(z0), encArg(z1)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (55) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing tuple parts ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (57) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, cons_h(z0), x2)) -> c3(F(encArg(x0), h(encArg(z0)), encArg(x2)), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(x2)) by ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(0)) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(F(encArg(x0), h(encArg(x1)), 1), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(1)) ENCARG(cons_f(x0, cons_h(x1), g(z0, z1))) -> c3(F(encArg(x0), h(encArg(x1)), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, cons_h(x1), cons_f(z0, z1, z2))) -> c3(F(encArg(x0), h(encArg(x1)), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, cons_h(x1), cons_h(z0))) -> c3(F(encArg(x0), h(encArg(x1)), h(encArg(z0))), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(cons_h(z0))) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(F(encArg(x0), h(1), encArg(x2)), ENCARG(x0), ENCARG(cons_h(1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(0), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(F(1, h(encArg(x1)), encArg(x2)), ENCARG(1), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(F(g(encArg(z0), encArg(z1)), h(encArg(x1)), encArg(x2)), ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(0)) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(F(encArg(x0), h(encArg(x1)), 1), ENCARG(x0), ENCARG(cons_h(x1)), ENCARG(1)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(F(encArg(x0), h(1), encArg(x2)), ENCARG(x0), ENCARG(cons_h(1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(0), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(F(1, h(encArg(x1)), encArg(x2)), ENCARG(1), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(F(g(encArg(z0), encArg(z1)), h(encArg(x1)), encArg(x2)), ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (59) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 9 trailing tuple parts ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (61) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(x2)) by ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(0)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 1), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(1)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, g(z0, z1))) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), g(encArg(z0), encArg(z1))), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(g(z0, z1))) ENCARG(cons_f(cons_f(x0, x1, x2), x3, cons_f(z0, z1, z2))) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(cons_f(x0, x1, x2), x3, cons_h(z0))) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), h(encArg(z0))), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(cons_h(z0))) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 0, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(0), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(1), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), g(encArg(z0), encArg(z1)), encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), cons_f(z0, z1, z2), x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), cons_h(z0), x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), h(encArg(z0)), encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(cons_h(z0)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(F(f(encArg(x0), 0, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(F(f(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(F(f(1, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(F(f(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(0)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 1), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3), ENCARG(1)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 0, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(0), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(1), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), g(encArg(z0), encArg(z1)), encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(F(f(encArg(x0), 0, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(F(f(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(F(f(1, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(F(f(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (63) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 11 trailing tuple parts ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_4, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_1 ---------------------------------------- (65) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(cons_h(z0), x1, x2)) -> c3(F(h(encArg(z0)), encArg(x1), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(x2)) by ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(0)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(F(h(encArg(x0)), encArg(x1), 1), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(1)) ENCARG(cons_f(cons_h(x0), x1, g(z0, z1))) -> c3(F(h(encArg(x0)), encArg(x1), g(encArg(z0), encArg(z1))), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(g(z0, z1))) ENCARG(cons_f(cons_h(x0), x1, cons_f(z0, z1, z2))) -> c3(F(h(encArg(x0)), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(cons_h(x0), x1, cons_h(z0))) -> c3(F(h(encArg(x0)), encArg(x1), h(encArg(z0))), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(cons_h(z0))) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(F(h(encArg(x0)), 0, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(0), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(F(h(encArg(x0)), g(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), cons_f(z0, z1, z2), x2)) -> c3(F(h(encArg(x0)), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), ENCARG(cons_h(x0)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), cons_h(z0), x2)) -> c3(F(h(encArg(x0)), h(encArg(z0)), encArg(x2)), ENCARG(cons_h(x0)), ENCARG(cons_h(z0)), ENCARG(x2)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(F(h(1), encArg(x1), encArg(x2)), ENCARG(cons_h(1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(0)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(F(h(encArg(x0)), encArg(x1), 1), ENCARG(cons_h(x0)), ENCARG(x1), ENCARG(1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(F(h(encArg(x0)), 0, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(0), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(F(h(encArg(x0)), g(encArg(z0), encArg(z1)), encArg(x2)), ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(F(h(1), encArg(x1), encArg(x2)), ENCARG(cons_h(1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 9 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_3, c3_2, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, x1, 0)) -> c3(F(encArg(x0), encArg(x1), 0), ENCARG(x0), ENCARG(x1)) by ENCARG(cons_f(x0, 0, 0)) -> c3(F(encArg(x0), 0, 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0), ENCARG(1)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), 0), ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), 0)) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), 0), ENCARG(x0), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, cons_h(z0), 0)) -> c3(F(encArg(x0), h(encArg(z0)), 0), ENCARG(x0), ENCARG(cons_h(z0))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(F(1, encArg(x1), 0), ENCARG(1), ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), 0), ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(cons_f(z0, z1, z2), x1, 0)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), 0), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_f(cons_h(z0), x1, 0)) -> c3(F(h(encArg(z0)), encArg(x1), 0), ENCARG(cons_h(z0)), ENCARG(x1)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(F(encArg(x0), 0, 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0), ENCARG(1)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(F(encArg(x0), g(encArg(z0), encArg(z1)), 0), ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(F(1, encArg(x1), 0), ENCARG(1), ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(F(g(encArg(z0), encArg(z1)), encArg(x1), 0), ENCARG(g(z0, z1)), ENCARG(x1)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (73) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(x0, 1, x2)) -> c3(F(encArg(x0), 1, encArg(x2)), ENCARG(x0), ENCARG(x2)) by ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_f(x0, 1, 1)) -> c3(F(encArg(x0), 1, 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_f(x0, 1, g(z0, z1))) -> c3(F(encArg(x0), 1, g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(x0, 1, cons_f(z0, z1, z2))) -> c3(F(encArg(x0), 1, f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(x0, 1, cons_h(z0))) -> c3(F(encArg(x0), 1, h(encArg(z0))), ENCARG(x0), ENCARG(cons_h(z0))) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(F(1, 1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(F(g(encArg(z0), encArg(z1)), 1, encArg(x1)), ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(cons_f(z0, z1, z2), 1, x1)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), 1, encArg(x1)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_f(cons_h(z0), 1, x1)) -> c3(F(h(encArg(z0)), 1, encArg(x1)), ENCARG(cons_h(z0)), ENCARG(x1)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_f(x0, 1, 1)) -> c3(F(encArg(x0), 1, 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(F(1, 1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(F(g(encArg(z0), encArg(z1)), 1, encArg(x1)), ENCARG(g(z0, z1)), ENCARG(x1)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (75) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (77) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_f(0, x1, x2)) -> c3(F(0, encArg(x1), encArg(x2)), ENCARG(x1), ENCARG(x2)) by ENCARG(cons_f(0, x0, 0)) -> c3(F(0, encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_f(0, x0, 1)) -> c3(F(0, encArg(x0), 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_f(0, x0, g(z0, z1))) -> c3(F(0, encArg(x0), g(encArg(z0), encArg(z1))), ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x0, cons_f(z0, z1, z2))) -> c3(F(0, encArg(x0), f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_f(0, x0, cons_h(z0))) -> c3(F(0, encArg(x0), h(encArg(z0))), ENCARG(x0), ENCARG(cons_h(z0))) ENCARG(cons_f(0, 0, x1)) -> c3(F(0, 0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(F(0, g(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, cons_f(z0, z1, z2), x1)) -> c3(F(0, f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1)), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1)) ENCARG(cons_f(0, cons_h(z0), x1)) -> c3(F(0, h(encArg(z0)), encArg(x1)), ENCARG(cons_h(z0)), ENCARG(x1)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 0)) -> c3(F(0, encArg(x0), 0), ENCARG(x0), ENCARG(0)) ENCARG(cons_f(0, x0, 1)) -> c3(F(0, encArg(x0), 1), ENCARG(x0), ENCARG(1)) ENCARG(cons_f(0, 0, x1)) -> c3(F(0, 0, encArg(x1)), ENCARG(0), ENCARG(x1)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(1), ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(F(0, g(encArg(z0), encArg(z1)), encArg(x1)), ENCARG(g(z0, z1)), ENCARG(x1)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_h(cons_f(z0, z1, z2))) -> c4(H(f(encArg(z0), encArg(z1), encArg(z2))), ENCARG(cons_f(z0, z1, z2))) by ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(H(f(encArg(x0), 0, encArg(x2))), ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(H(f(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(H(f(1, encArg(x1), encArg(x2))), ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(H(f(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))), ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(H(f(encArg(x0), 0, encArg(x2))), ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(H(f(encArg(x0), g(encArg(z0), encArg(z1)), encArg(x2))), ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(H(f(1, encArg(x1), encArg(x2))), ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(H(f(g(encArg(z0), encArg(z1)), encArg(x1), encArg(x2))), ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace ENCARG(cons_h(cons_h(z0))) -> c4(H(h(encArg(z0))), ENCARG(cons_h(z0))) by ENCARG(cons_h(cons_h(0))) -> c4(H(h(0)), ENCARG(cons_h(0))) ENCARG(cons_h(cons_h(1))) -> c4(H(h(1)), ENCARG(cons_h(1))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(0))) -> c4(H(h(0)), ENCARG(cons_h(0))) ENCARG(cons_h(cons_h(1))) -> c4(H(h(1)), ENCARG(cons_h(1))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (87) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: ENCARG(cons_h(cons_h(1))) -> c4(H(h(1)), ENCARG(cons_h(1))) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(0))) -> c4(H(h(0)), ENCARG(cons_h(0))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1 ---------------------------------------- (89) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1 ---------------------------------------- (91) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace F(0, 1, g(z0, z1)) -> c10(F(h(g(z0, z1)), z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) by F(0, 1, g(z0, z1)) -> c10(F(z1, z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c10(F(z1, z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, g(z0, z1)) -> c10(F(z1, z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1 ---------------------------------------- (93) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c10(H(g(z0, z1)), H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, g(z0, z1)) -> c10(H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c10_2 ---------------------------------------- (95) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c6_1 ---------------------------------------- (97) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) We considered the (Usable) Rules:none And the Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(1) = 0 POL(ENCARG(x_1)) = x_1 POL(ENCODE_F(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(ENCODE_H(x_1)) = [1] + x_1 POL(F(x_1, x_2, x_3)) = [1] POL(H(x_1)) = 0 POL(c(x_1)) = x_1 POL(c1(x_1)) = x_1 POL(c10(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c11) = 0 POL(c12) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c3(x_1)) = x_1 POL(c3(x_1, x_2)) = x_1 + x_2 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c4(x_1)) = x_1 POL(c4(x_1, x_2)) = x_1 + x_2 POL(c5(x_1)) = x_1 POL(c6(x_1)) = x_1 POL(cons_f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_h(x_1)) = x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = 0 POL(g(x_1, x_2)) = x_1 + x_2 POL(h(x_1)) = 0 ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c6_1 ---------------------------------------- (99) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace F(0, 1, 0) -> c10(F(0, h(0), 0), H(0), H(0)) by F(0, 1, 0) -> c10(F(0, 0, 0), H(0), H(0)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, 0, 0), H(0), H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(F(0, 0, 0), H(0), H(0)) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c6_1 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c10(H(0), H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c10(H(0), H(0)) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c10_2 ---------------------------------------- (103) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1 ---------------------------------------- (105) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. F(0, 1, 0) -> c7(H(0)) We considered the (Usable) Rules:none And the Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(1) = 0 POL(ENCARG(x_1)) = x_1 POL(ENCODE_F(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(ENCODE_H(x_1)) = [1] + x_1 POL(F(x_1, x_2, x_3)) = [1] POL(H(x_1)) = 0 POL(c(x_1)) = x_1 POL(c1(x_1)) = x_1 POL(c10(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c11) = 0 POL(c12) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c3(x_1)) = x_1 POL(c3(x_1, x_2)) = x_1 + x_2 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c4(x_1)) = x_1 POL(c4(x_1, x_2)) = x_1 + x_2 POL(c5(x_1)) = x_1 POL(c6(x_1)) = x_1 POL(c7(x_1)) = x_1 POL(cons_f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_h(x_1)) = x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = 0 POL(g(x_1, x_2)) = x_1 + x_2 POL(h(x_1)) = 0 ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c10_3, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1 ---------------------------------------- (107) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace F(0, 1, g(z0, z1)) -> c10(F(z1, h(g(z0, z1)), g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) by F(0, 1, g(z0, z1)) -> c10(F(z1, z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c10(F(z1, z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(F(z1, z1, g(z0, z1)), H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1, c10_3 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c10(H(g(z0, z1)), H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c10(H(g(z0, z1)), H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1, c10_2 ---------------------------------------- (111) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1, c8_1 ---------------------------------------- (113) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) We considered the (Usable) Rules:none And the Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = 0 POL(1) = 0 POL(ENCARG(x_1)) = x_1 POL(ENCODE_F(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(ENCODE_H(x_1)) = [1] + x_1 POL(F(x_1, x_2, x_3)) = [1] POL(H(x_1)) = 0 POL(c(x_1)) = x_1 POL(c1(x_1)) = x_1 POL(c11) = 0 POL(c12) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c3(x_1)) = x_1 POL(c3(x_1, x_2)) = x_1 + x_2 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c4(x_1)) = x_1 POL(c4(x_1, x_2)) = x_1 + x_2 POL(c5(x_1)) = x_1 POL(c6(x_1)) = x_1 POL(c7(x_1)) = x_1 POL(c8(x_1)) = x_1 POL(cons_f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_h(x_1)) = x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = 0 POL(g(x_1, x_2)) = x_1 + x_2 POL(h(x_1)) = 0 ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) S tuples: H(0) -> c11 H(g(z0, z1)) -> c12 K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1, c8_1 ---------------------------------------- (115) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. H(0) -> c11 H(g(z0, z1)) -> c12 We considered the (Usable) Rules:none And the Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(0) = [1] POL(1) = 0 POL(ENCARG(x_1)) = x_1 POL(ENCODE_F(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(ENCODE_H(x_1)) = [1] + x_1 POL(F(x_1, x_2, x_3)) = [1] POL(H(x_1)) = [1] POL(c(x_1)) = x_1 POL(c1(x_1)) = x_1 POL(c11) = 0 POL(c12) = 0 POL(c2(x_1, x_2)) = x_1 + x_2 POL(c3(x_1)) = x_1 POL(c3(x_1, x_2)) = x_1 + x_2 POL(c3(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(c3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(c4(x_1)) = x_1 POL(c4(x_1, x_2)) = x_1 + x_2 POL(c5(x_1)) = x_1 POL(c6(x_1)) = x_1 POL(c7(x_1)) = x_1 POL(c8(x_1)) = x_1 POL(cons_f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_h(x_1)) = [1] + x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = 0 POL(g(x_1, x_2)) = x_1 + x_2 POL(h(x_1)) = 0 ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: encArg(0) -> 0 encArg(1) -> 1 encArg(g(z0, z1)) -> g(encArg(z0), encArg(z1)) encArg(cons_f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_h(z0)) -> h(encArg(z0)) f(0, 1, z0) -> f(h(z0), h(z0), z0) h(0) -> 0 h(g(z0, z1)) -> z1 Tuples: ENCARG(g(z0, z1)) -> c2(ENCARG(z0), ENCARG(z1)) H(0) -> c11 H(g(z0, z1)) -> c12 ENCARG(cons_f(x0, 0, x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(x0, g(z0, z1), x2)) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(1, x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), x1, x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_h(g(z0, z1))) -> c4(H(g(encArg(z0), encArg(z1))), ENCARG(g(z0, z1))) ENCARG(cons_h(0)) -> c4(H(0)) ENCARG(cons_f(x0, x1, 1)) -> c3(ENCARG(x0), ENCARG(x1)) F(0, 1, 0) -> c1(H(0)) ENCODE_F(x0, x1, 0) -> c(F(encArg(x0), encArg(x1), 0)) ENCODE_F(x0, x1, g(z0, z1)) -> c(F(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))) ENCODE_F(x0, x1, cons_f(z0, z1, z2)) -> c(F(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_F(x0, x1, cons_h(z0)) -> c(F(encArg(x0), encArg(x1), h(encArg(z0)))) ENCODE_F(x0, 1, x2) -> c(F(encArg(x0), 1, encArg(x2))) ENCODE_F(x0, cons_f(z0, z1, z2), x2) -> c(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))) ENCODE_F(x0, cons_h(z0), x2) -> c(F(encArg(x0), h(encArg(z0)), encArg(x2))) ENCODE_F(0, x1, x2) -> c(F(0, encArg(x1), encArg(x2))) ENCODE_F(cons_f(z0, z1, z2), x1, x2) -> c(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))) ENCODE_F(cons_h(z0), x1, x2) -> c(F(h(encArg(z0)), encArg(x1), encArg(x2))) ENCODE_H(g(z0, z1)) -> c(H(g(encArg(z0), encArg(z1)))) ENCODE_H(cons_f(z0, z1, z2)) -> c(H(f(encArg(z0), encArg(z1), encArg(z2)))) ENCODE_H(cons_h(z0)) -> c(H(h(encArg(z0)))) ENCARG(cons_f(x0, x1, g(x2, 0))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 0)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 0))) ENCARG(cons_f(x0, x1, g(x2, 1))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), 1)), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, 1))) ENCARG(cons_f(x0, x1, g(x2, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, g(z0, z1)))) ENCARG(cons_f(x0, x1, g(x2, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, g(x2, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), g(encArg(x2), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(g(x2, cons_h(z0)))) ENCARG(cons_f(x0, x1, g(0, x3))) -> c3(F(encArg(x0), encArg(x1), g(0, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(0, x3))) ENCARG(cons_f(x0, x1, g(1, x3))) -> c3(F(encArg(x0), encArg(x1), g(1, encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(1, x3))) ENCARG(cons_f(x0, x1, g(g(z0, z1), x3))) -> c3(F(encArg(x0), encArg(x1), g(g(encArg(z0), encArg(z1)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(g(z0, z1), x3))) ENCARG(cons_f(x0, x1, g(cons_f(z0, z1, z2), x3))) -> c3(F(encArg(x0), encArg(x1), g(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_f(z0, z1, z2), x3))) ENCARG(cons_f(x0, x1, g(cons_h(z0), x3))) -> c3(F(encArg(x0), encArg(x1), g(h(encArg(z0)), encArg(x3))), ENCARG(x0), ENCARG(x1), ENCARG(g(cons_h(z0), x3))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), g(x2, x3))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, cons_h(z0), g(x2, x3))) -> c3(F(encArg(x0), h(encArg(z0)), g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, g(x2, x3))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(cons_h(z0), x1, g(x2, x3))) -> c3(F(h(encArg(z0)), encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, g(x2, x3))) -> c3(ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 0, g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, 1, g(x2, x3))) -> c3(F(encArg(x0), 1, g(encArg(x2), encArg(x3))), ENCARG(x0), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, g(z0, z1), g(x2, x3))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(g(x2, x3))) ENCARG(cons_f(0, x1, g(x2, x3))) -> c3(F(0, encArg(x1), g(encArg(x2), encArg(x3))), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(1, x1, g(x2, x3))) -> c3(ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(g(z0, z1), x1, g(x2, x3))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(g(x2, x3))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 0))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 0))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, 1))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), 1)), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, 1))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_f(x2, x3, cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), encArg(x3), h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, x3, cons_h(z0)))) ENCARG(cons_f(x0, x1, cons_f(x2, 1, x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), 1, encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 1, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_f(z0, z1, z2), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_f(z0, z1, z2), x4))) ENCARG(cons_f(x0, x1, cons_f(x2, cons_h(z0), x4))) -> c3(F(encArg(x0), encArg(x1), f(encArg(x2), h(encArg(z0)), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, cons_h(z0), x4))) ENCARG(cons_f(x0, x1, cons_f(0, x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(0, encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(0, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_f(z0, z1, z2), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_f(z0, z1, z2), x3, x4))) ENCARG(cons_f(x0, x1, cons_f(cons_h(z0), x3, x4))) -> c3(F(encArg(x0), encArg(x1), f(h(encArg(z0)), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(x1), ENCARG(cons_f(cons_h(z0), x3, x4))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, cons_h(z0), cons_f(x2, x3, x4))) -> c3(F(encArg(x0), h(encArg(z0)), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_f(x2, x3, x4))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(cons_h(z0), x1, cons_f(x2, x3, x4))) -> c3(F(h(encArg(z0)), encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, 0, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, 0, x4))) ENCARG(cons_f(x0, x1, cons_f(x2, g(z0, z1), x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(x2, g(z0, z1), x4))) ENCARG(cons_f(x0, x1, cons_f(1, x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(1, x3, x4))) ENCARG(cons_f(x0, x1, cons_f(g(z0, z1), x3, x4))) -> c3(ENCARG(x0), ENCARG(x1), ENCARG(cons_f(g(z0, z1), x3, x4))) ENCARG(cons_f(x0, 0, cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, 1, cons_f(x2, x3, x4))) -> c3(F(encArg(x0), 1, f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x0), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, g(z0, z1), cons_f(x2, x3, x4))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(0, x1, cons_f(x2, x3, x4))) -> c3(F(0, encArg(x1), f(encArg(x2), encArg(x3), encArg(x4))), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(1, x1, cons_f(x2, x3, x4))) -> c3(ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(g(z0, z1), x1, cons_f(x2, x3, x4))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_f(x2, x3, x4))) ENCARG(cons_f(x0, x1, cons_h(0))) -> c3(F(encArg(x0), encArg(x1), h(0)), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(0))) ENCARG(cons_f(x0, x1, cons_h(g(z0, z1)))) -> c3(F(encArg(x0), encArg(x1), h(g(encArg(z0), encArg(z1)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_f(x0, x1, cons_h(cons_f(z0, z1, z2)))) -> c3(F(encArg(x0), encArg(x1), h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_f(x0, x1, cons_h(cons_h(z0)))) -> c3(F(encArg(x0), encArg(x1), h(h(encArg(z0)))), ENCARG(x0), ENCARG(x1), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_f(x0, cons_f(z0, z1, z2), cons_h(x2))) -> c3(F(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_h(z0), cons_h(x2))) -> c3(F(encArg(x0), h(encArg(z0)), h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(z0)), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_f(z0, z1, z2), x1, cons_h(x2))) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), h(encArg(x2))), ENCARG(cons_f(z0, z1, z2)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(cons_h(z0), x1, cons_h(x2))) -> c3(F(h(encArg(z0)), encArg(x1), h(encArg(x2))), ENCARG(cons_h(z0)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, x1, cons_h(1))) -> c3(ENCARG(x0), ENCARG(x1)) ENCARG(cons_f(x0, 0, cons_h(x2))) -> c3(ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, 1, cons_h(x2))) -> c3(F(encArg(x0), 1, h(encArg(x2))), ENCARG(x0), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, g(z0, z1), cons_h(x2))) -> c3(ENCARG(x0), ENCARG(g(z0, z1)), ENCARG(cons_h(x2))) ENCARG(cons_f(0, x1, cons_h(x2))) -> c3(F(0, encArg(x1), h(encArg(x2))), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(1, x1, cons_h(x2))) -> c3(ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(g(z0, z1), x1, cons_h(x2))) -> c3(ENCARG(g(z0, z1)), ENCARG(x1), ENCARG(cons_h(x2))) ENCARG(cons_f(x0, cons_f(x1, x2, 0), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 0), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 0)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, 1), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), 1), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, 1)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, g(z0, z1)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), g(encArg(z0), encArg(z1))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, g(z0, z1))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_f(z0, z1, z2)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_f(z0, z1, z2))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, cons_h(z0)), x4)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), h(encArg(z0))), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, x2, cons_h(z0))), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, 1, x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), 1, encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, 1, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_f(z0, z1, z2), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_f(z0, z1, z2), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, cons_h(z0), x3), x4)) -> c3(F(encArg(x0), f(encArg(x1), h(encArg(z0)), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(x1, cons_h(z0), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(0, x2, x3), x4)) -> c3(F(encArg(x0), f(0, encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(0, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_f(z0, z1, z2), x2, x3), x4)) -> c3(F(encArg(x0), f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_f(z0, z1, z2), x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(cons_h(z0), x2, x3), x4)) -> c3(F(encArg(x0), f(h(encArg(z0)), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(x0), ENCARG(cons_f(cons_h(z0), x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_f(x1, x2, x3), x4)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(cons_h(z0), cons_f(x1, x2, x3), x4)) -> c3(F(h(encArg(z0)), f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_h(z0)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 0)) -> c3(F(encArg(x0), f(encArg(x1), encArg(x2), encArg(x3)), 0), ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, x2, x3), 1)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, x2, x3))) ENCARG(cons_f(x0, cons_f(x1, 0, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, 0, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(x1, g(z0, z1), x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(x1, g(z0, z1), x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(1, x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_f(g(z0, z1), x2, x3), x4)) -> c3(ENCARG(x0), ENCARG(cons_f(g(z0, z1), x2, x3)), ENCARG(x4)) ENCARG(cons_f(0, cons_f(x1, x2, x3), x4)) -> c3(F(0, f(encArg(x1), encArg(x2), encArg(x3)), encArg(x4)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(1, cons_f(x1, x2, x3), x4)) -> c3(ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(g(z0, z1), cons_f(x1, x2, x3), x4)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_f(x1, x2, x3)), ENCARG(x4)) ENCARG(cons_f(x0, cons_h(0), x2)) -> c3(F(encArg(x0), h(0), encArg(x2)), ENCARG(x0), ENCARG(cons_h(0)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(g(z0, z1)), x2)) -> c3(F(encArg(x0), h(g(encArg(z0), encArg(z1))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(g(z0, z1))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_f(z0, z1, z2)), x2)) -> c3(F(encArg(x0), h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(cons_h(z0)), x2)) -> c3(F(encArg(x0), h(h(encArg(z0))), encArg(x2)), ENCARG(x0), ENCARG(cons_h(cons_h(z0))), ENCARG(x2)) ENCARG(cons_f(cons_f(z0, z1, z2), cons_h(x1), x2)) -> c3(F(f(encArg(z0), encArg(z1), encArg(z2)), h(encArg(x1)), encArg(x2)), ENCARG(cons_f(z0, z1, z2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_h(z0), cons_h(x1), x2)) -> c3(F(h(encArg(z0)), h(encArg(x1)), encArg(x2)), ENCARG(cons_h(z0)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(x0, cons_h(x1), 0)) -> c3(F(encArg(x0), h(encArg(x1)), 0), ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(x1), 1)) -> c3(ENCARG(x0), ENCARG(cons_h(x1))) ENCARG(cons_f(x0, cons_h(1), x2)) -> c3(ENCARG(x0), ENCARG(x2)) ENCARG(cons_f(0, cons_h(x1), x2)) -> c3(F(0, h(encArg(x1)), encArg(x2)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(1, cons_h(x1), x2)) -> c3(ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(g(z0, z1), cons_h(x1), x2)) -> c3(ENCARG(g(z0, z1)), ENCARG(cons_h(x1)), ENCARG(x2)) ENCARG(cons_f(cons_f(x0, x1, 0), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 0), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 0)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, 1), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), 1), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, 1)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, g(z0, z1)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, g(z0, z1))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_f(z0, z1, z2)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, cons_h(z0)), x3, x4)) -> c3(F(f(encArg(x0), encArg(x1), h(encArg(z0))), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, x1, cons_h(z0))), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 1, x2), x3, x4)) -> c3(F(f(encArg(x0), 1, encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, 1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_f(z0, z1, z2), x2), x3, x4)) -> c3(F(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, cons_h(z0), x2), x3, x4)) -> c3(F(f(encArg(x0), h(encArg(z0)), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(x0, cons_h(z0), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(0, x1, x2), x3, x4)) -> c3(F(f(0, encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(0, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_f(z0, z1, z2), x1, x2), x3, x4)) -> c3(F(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(cons_h(z0), x1, x2), x3, x4)) -> c3(F(f(h(encArg(z0)), encArg(x1), encArg(x2)), encArg(x3), encArg(x4)), ENCARG(cons_f(cons_h(z0), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 0)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), encArg(x3), 0), ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), x3, 1)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x3)) ENCARG(cons_f(cons_f(x0, x1, x2), 0, x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), 1, x4)) -> c3(F(f(encArg(x0), encArg(x1), encArg(x2)), 1, encArg(x4)), ENCARG(cons_f(x0, x1, x2)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, x1, x2), g(z0, z1), x4)) -> c3(ENCARG(cons_f(x0, x1, x2)), ENCARG(g(z0, z1)), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, 0, x2), x3, x4)) -> c3(ENCARG(cons_f(x0, 0, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(x0, g(z0, z1), x2), x3, x4)) -> c3(ENCARG(cons_f(x0, g(z0, z1), x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(1, x1, x2), x3, x4)) -> c3(ENCARG(cons_f(1, x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_f(g(z0, z1), x1, x2), x3, x4)) -> c3(ENCARG(cons_f(g(z0, z1), x1, x2)), ENCARG(x3), ENCARG(x4)) ENCARG(cons_f(cons_h(0), x1, x2)) -> c3(F(h(0), encArg(x1), encArg(x2)), ENCARG(cons_h(0)), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(g(z0, z1)), x1, x2)) -> c3(F(h(g(encArg(z0), encArg(z1))), encArg(x1), encArg(x2)), ENCARG(cons_h(g(z0, z1))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_f(z0, z1, z2)), x1, x2)) -> c3(F(h(f(encArg(z0), encArg(z1), encArg(z2))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_f(z0, z1, z2))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(cons_h(z0)), x1, x2)) -> c3(F(h(h(encArg(z0))), encArg(x1), encArg(x2)), ENCARG(cons_h(cons_h(z0))), ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), x1, 0)) -> c3(F(h(encArg(x0)), encArg(x1), 0), ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), x1, 1)) -> c3(ENCARG(cons_h(x0)), ENCARG(x1)) ENCARG(cons_f(cons_h(x0), 0, x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), 1, x2)) -> c3(F(h(encArg(x0)), 1, encArg(x2)), ENCARG(cons_h(x0)), ENCARG(x2)) ENCARG(cons_f(cons_h(x0), g(z0, z1), x2)) -> c3(ENCARG(cons_h(x0)), ENCARG(g(z0, z1)), ENCARG(x2)) ENCARG(cons_f(cons_h(1), x1, x2)) -> c3(ENCARG(x1), ENCARG(x2)) ENCARG(cons_f(x0, 0, 0)) -> c3(ENCARG(x0)) ENCARG(cons_f(x0, 1, 0)) -> c3(F(encArg(x0), 1, 0), ENCARG(x0)) ENCARG(cons_f(x0, g(z0, z1), 0)) -> c3(ENCARG(x0), ENCARG(g(z0, z1))) ENCARG(cons_f(0, x1, 0)) -> c3(F(0, encArg(x1), 0), ENCARG(x1)) ENCARG(cons_f(1, x1, 0)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), x1, 0)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(x0, 1, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 1, x1)) -> c3(F(0, 1, encArg(x1)), ENCARG(x1)) ENCARG(cons_f(1, 1, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(g(z0, z1), 1, x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_f(0, x0, 1)) -> c3(ENCARG(x0)) ENCARG(cons_f(0, 0, x1)) -> c3(ENCARG(x1)) ENCARG(cons_f(0, g(z0, z1), x1)) -> c3(ENCARG(g(z0, z1)), ENCARG(x1)) ENCARG(cons_h(cons_f(x0, x1, 0))) -> c4(H(f(encArg(x0), encArg(x1), 0)), ENCARG(cons_f(x0, x1, 0))) ENCARG(cons_h(cons_f(x0, x1, 1))) -> c4(H(f(encArg(x0), encArg(x1), 1)), ENCARG(cons_f(x0, x1, 1))) ENCARG(cons_h(cons_f(x0, x1, g(z0, z1)))) -> c4(H(f(encArg(x0), encArg(x1), g(encArg(z0), encArg(z1)))), ENCARG(cons_f(x0, x1, g(z0, z1)))) ENCARG(cons_h(cons_f(x0, x1, cons_f(z0, z1, z2)))) -> c4(H(f(encArg(x0), encArg(x1), f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_f(x0, x1, cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_f(x0, x1, cons_h(z0)))) -> c4(H(f(encArg(x0), encArg(x1), h(encArg(z0)))), ENCARG(cons_f(x0, x1, cons_h(z0)))) ENCARG(cons_h(cons_f(x0, 1, x2))) -> c4(H(f(encArg(x0), 1, encArg(x2))), ENCARG(cons_f(x0, 1, x2))) ENCARG(cons_h(cons_f(x0, cons_f(z0, z1, z2), x2))) -> c4(H(f(encArg(x0), f(encArg(z0), encArg(z1), encArg(z2)), encArg(x2))), ENCARG(cons_f(x0, cons_f(z0, z1, z2), x2))) ENCARG(cons_h(cons_f(x0, cons_h(z0), x2))) -> c4(H(f(encArg(x0), h(encArg(z0)), encArg(x2))), ENCARG(cons_f(x0, cons_h(z0), x2))) ENCARG(cons_h(cons_f(0, x1, x2))) -> c4(H(f(0, encArg(x1), encArg(x2))), ENCARG(cons_f(0, x1, x2))) ENCARG(cons_h(cons_f(cons_f(z0, z1, z2), x1, x2))) -> c4(H(f(f(encArg(z0), encArg(z1), encArg(z2)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_f(z0, z1, z2), x1, x2))) ENCARG(cons_h(cons_f(cons_h(z0), x1, x2))) -> c4(H(f(h(encArg(z0)), encArg(x1), encArg(x2))), ENCARG(cons_f(cons_h(z0), x1, x2))) ENCARG(cons_h(cons_f(x0, 0, x2))) -> c4(ENCARG(cons_f(x0, 0, x2))) ENCARG(cons_h(cons_f(x0, g(z0, z1), x2))) -> c4(ENCARG(cons_f(x0, g(z0, z1), x2))) ENCARG(cons_h(cons_f(1, x1, x2))) -> c4(ENCARG(cons_f(1, x1, x2))) ENCARG(cons_h(cons_f(g(z0, z1), x1, x2))) -> c4(ENCARG(cons_f(g(z0, z1), x1, x2))) ENCARG(cons_h(cons_h(g(z0, z1)))) -> c4(H(h(g(encArg(z0), encArg(z1)))), ENCARG(cons_h(g(z0, z1)))) ENCARG(cons_h(cons_h(cons_f(z0, z1, z2)))) -> c4(H(h(f(encArg(z0), encArg(z1), encArg(z2)))), ENCARG(cons_h(cons_f(z0, z1, z2)))) ENCARG(cons_h(cons_h(cons_h(z0)))) -> c4(H(h(h(encArg(z0)))), ENCARG(cons_h(cons_h(z0)))) ENCARG(cons_h(cons_h(0))) -> c5(H(h(0))) ENCARG(cons_h(cons_h(0))) -> c5(ENCARG(cons_h(0))) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) S tuples:none K tuples: F(0, 1, 0) -> c1(H(0)) F(0, 1, g(z0, z1)) -> c6(H(g(z0, z1))) F(0, 1, 0) -> c7(H(0)) F(0, 1, g(z0, z1)) -> c8(H(g(z0, z1))) H(0) -> c11 H(g(z0, z1)) -> c12 Defined Rule Symbols: encArg_1, f_3, h_1 Defined Pair Symbols: ENCARG_1, H_1, F_3, ENCODE_F_3, ENCODE_H_1 Compound Symbols: c2_2, c11, c12, c3_2, c3_3, c4_2, c4_1, c1_1, c_1, c3_4, c3_1, c5_1, c6_1, c7_1, c8_1 ---------------------------------------- (117) SIsEmptyProof (BOTH BOUNDS(ID, ID)) The set S is empty ---------------------------------------- (118) BOUNDS(1, 1)