/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^2)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (full) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 236 ms] (4) CpxRelTRS (5) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (8) CdtProblem (9) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (10) CdtProblem (11) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CdtProblem (13) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (14) CdtProblem (15) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CdtProblem (17) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 71 ms] (18) CdtProblem (19) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 173 ms] (20) CdtProblem (21) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 97 ms] (22) CdtProblem (23) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 101 ms] (24) CdtProblem (25) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 108 ms] (26) CdtProblem (27) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] (28) BOUNDS(1, 1) (29) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CpxRelTRS (31) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (32) typed CpxTrs (33) OrderProof [LOWER BOUND(ID), 0 ms] (34) typed CpxTrs (35) RewriteLemmaProof [LOWER BOUND(ID), 7000 ms] (36) BEST (37) proven lower bound (38) LowerBoundPropagationProof [FINISHED, 0 ms] (39) BOUNDS(n^1, INF) (40) typed CpxTrs (41) RewriteLemmaProof [LOWER BOUND(ID), 69 ms] (42) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: The Derivational Complexity (full) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b S is empty. Rewrite Strategy: FULL ---------------------------------------- (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(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b The (relative) TRS S consists of the following rules: encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: FULL ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b The (relative) TRS S consists of the following rules: encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: FULL ---------------------------------------- (5) RcToIrcProof (BOTH BOUNDS(ID, ID)) Converted rc-obligation to irc-obligation. As the TRS is a non-duplicating overlay system, we have rc = irc. ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b The (relative) TRS S consists of the following rules: encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (7) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) encode_a__f(z0, z1, z2) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(z0) -> mark(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(a) -> c ENCARG(b) -> c1 ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCODE_A__F(z0, z1, z2) -> c6(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_A -> c7 ENCODE_A__B -> c8(A__B) ENCODE_B -> c9 ENCODE_MARK(z0) -> c10(MARK(encArg(z0)), ENCARG(z0)) ENCODE_F(z0, z1, z2) -> c11(ENCARG(z0), ENCARG(z1), ENCARG(z2)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 K tuples:none Defined Rule Symbols: a__f_3, a__b, mark_1, encArg_1, encode_a__f_3, encode_a, encode_a__b, encode_b, encode_mark_1, encode_f_3 Defined Pair Symbols: ENCARG_1, ENCODE_A__F_3, ENCODE_A, ENCODE_A__B, ENCODE_B, ENCODE_MARK_1, ENCODE_F_3, A__F_3, A__B, MARK_1 Compound Symbols: c, c1, c2_3, c3_4, c4_1, c5_2, c6_4, c7, c8_1, c9, c10_2, c11_3, c12_2, c13, c14, c15, c16_2, c17_1, c18 ---------------------------------------- (9) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 2 leading nodes: ENCODE_F(z0, z1, z2) -> c11(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_A__B -> c8(A__B) Removed 4 trailing nodes: ENCODE_A -> c7 ENCARG(a) -> c ENCODE_B -> c9 ENCARG(b) -> c1 ---------------------------------------- (10) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) encode_a__f(z0, z1, z2) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(z0) -> mark(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) ENCODE_A__F(z0, z1, z2) -> c6(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCODE_MARK(z0) -> c10(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 K tuples:none Defined Rule Symbols: a__f_3, a__b, mark_1, encArg_1, encode_a__f_3, encode_a, encode_a__b, encode_b, encode_mark_1, encode_f_3 Defined Pair Symbols: ENCARG_1, ENCODE_A__F_3, ENCODE_MARK_1, A__F_3, A__B, MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c6_4, c10_2, c12_2, c13, c14, c15, c16_2, c17_1, c18 ---------------------------------------- (11) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (12) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) encode_a__f(z0, z1, z2) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(z0) -> mark(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_A__F(z0, z1, z2) -> c(ENCARG(z0)) ENCODE_A__F(z0, z1, z2) -> c(ENCARG(z1)) ENCODE_A__F(z0, z1, z2) -> c(ENCARG(z2)) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) ENCODE_MARK(z0) -> c(ENCARG(z0)) S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 K tuples:none Defined Rule Symbols: a__f_3, a__b, mark_1, encArg_1, encode_a__f_3, encode_a, encode_a__b, encode_b, encode_mark_1, encode_f_3 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (13) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 4 leading nodes: ENCODE_A__F(z0, z1, z2) -> c(ENCARG(z0)) ENCODE_A__F(z0, z1, z2) -> c(ENCARG(z1)) ENCODE_A__F(z0, z1, z2) -> c(ENCARG(z2)) ENCODE_MARK(z0) -> c(ENCARG(z0)) ---------------------------------------- (14) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) encode_a__f(z0, z1, z2) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(z0) -> mark(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 K tuples:none Defined Rule Symbols: a__f_3, a__b, mark_1, encArg_1, encode_a__f_3, encode_a, encode_a__b, encode_b, encode_mark_1, encode_f_3 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (15) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: encode_a__f(z0, z1, z2) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(z0) -> mark(encArg(z0)) encode_f(z0, z1, z2) -> f(encArg(z0), encArg(z1), encArg(z2)) ---------------------------------------- (16) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 K tuples:none Defined Rule Symbols: encArg_1, a__f_3, a__b, mark_1 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (17) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. MARK(b) -> c17(A__B) MARK(a) -> c18 We considered the (Usable) Rules:none And the Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(A__B) = 0 POL(A__F(x_1, x_2, x_3)) = 0 POL(ENCARG(x_1)) = x_1 POL(ENCODE_A__F(x_1, x_2, x_3)) = 0 POL(ENCODE_MARK(x_1)) = [1] POL(MARK(x_1)) = [1] POL(a) = 0 POL(a__b) = 0 POL(a__f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(b) = 0 POL(c(x_1)) = x_1 POL(c12(x_1, x_2)) = x_1 + x_2 POL(c13) = 0 POL(c14) = 0 POL(c15) = 0 POL(c16(x_1, x_2)) = x_1 + x_2 POL(c17(x_1)) = x_1 POL(c18) = 0 POL(c2(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(c5(x_1, x_2)) = x_1 + x_2 POL(cons_a__b) = [1] POL(cons_a__f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_mark(x_1)) = [1] + x_1 POL(encArg(x_1)) = [1] + x_1 POL(f(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(mark(x_1)) = [1] ---------------------------------------- (18) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) K tuples: MARK(b) -> c17(A__B) MARK(a) -> c18 Defined Rule Symbols: encArg_1, a__f_3, a__b, mark_1 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (19) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) We considered the (Usable) Rules: a__f(z0, z1, z2) -> f(z0, z1, z2) encArg(cons_a__b) -> a__b mark(a) -> a encArg(a) -> a a__b -> b encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) encArg(b) -> b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__b -> a And the Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(A__B) = 0 POL(A__F(x_1, x_2, x_3)) = 0 POL(ENCARG(x_1)) = x_1^2 POL(ENCODE_A__F(x_1, x_2, x_3)) = [2] + x_1 + x_2 + [2]x_3 + [2]x_3^2 + [2]x_2*x_3 + x_1*x_3 + [2]x_1^2 + [2]x_1*x_2 + x_2^2 POL(ENCODE_MARK(x_1)) = [1] + [2]x_1 + [2]x_1^2 POL(MARK(x_1)) = x_1 POL(a) = 0 POL(a__b) = 0 POL(a__f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(b) = 0 POL(c(x_1)) = x_1 POL(c12(x_1, x_2)) = x_1 + x_2 POL(c13) = 0 POL(c14) = 0 POL(c15) = 0 POL(c16(x_1, x_2)) = x_1 + x_2 POL(c17(x_1)) = x_1 POL(c18) = 0 POL(c2(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(c5(x_1, x_2)) = x_1 + x_2 POL(cons_a__b) = 0 POL(cons_a__f(x_1, x_2, x_3)) = [2] + x_1 + x_2 + x_3 POL(cons_mark(x_1)) = [2] + x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(mark(x_1)) = x_1 ---------------------------------------- (20) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 K tuples: MARK(b) -> c17(A__B) MARK(a) -> c18 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) Defined Rule Symbols: encArg_1, a__f_3, a__b, mark_1 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (21) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. A__F(z0, z1, z2) -> c13 We considered the (Usable) Rules: a__f(z0, z1, z2) -> f(z0, z1, z2) encArg(cons_a__b) -> a__b mark(a) -> a encArg(a) -> a a__b -> b encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) encArg(b) -> b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__b -> a And the Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(A__B) = 0 POL(A__F(x_1, x_2, x_3)) = [1] POL(ENCARG(x_1)) = x_1^2 POL(ENCODE_A__F(x_1, x_2, x_3)) = [2] + x_1 + x_2 + [2]x_3 + x_3^2 + x_2*x_3 + [2]x_1*x_3 + [2]x_1^2 + [2]x_1*x_2 + x_2^2 POL(ENCODE_MARK(x_1)) = [2] + [2]x_1 + [2]x_1^2 POL(MARK(x_1)) = [2]x_1 POL(a) = 0 POL(a__b) = 0 POL(a__f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(b) = 0 POL(c(x_1)) = x_1 POL(c12(x_1, x_2)) = x_1 + x_2 POL(c13) = 0 POL(c14) = 0 POL(c15) = 0 POL(c16(x_1, x_2)) = x_1 + x_2 POL(c17(x_1)) = x_1 POL(c18) = 0 POL(c2(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(c5(x_1, x_2)) = x_1 + x_2 POL(cons_a__b) = 0 POL(cons_a__f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_mark(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(mark(x_1)) = x_1 ---------------------------------------- (22) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples: A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__B -> c14 A__B -> c15 K tuples: MARK(b) -> c17(A__B) MARK(a) -> c18 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) A__F(z0, z1, z2) -> c13 Defined Rule Symbols: encArg_1, a__f_3, a__b, mark_1 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (23) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) We considered the (Usable) Rules: a__f(z0, z1, z2) -> f(z0, z1, z2) encArg(cons_a__b) -> a__b mark(a) -> a encArg(a) -> a a__b -> b encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) encArg(b) -> b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__b -> a And the Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(A__B) = 0 POL(A__F(x_1, x_2, x_3)) = [2]x_1 + [2]x_3 POL(ENCARG(x_1)) = x_1^2 POL(ENCODE_A__F(x_1, x_2, x_3)) = [2] + [2]x_1 + x_2 + [2]x_3 + [2]x_3^2 + [2]x_2*x_3 + [2]x_1*x_3 + [2]x_1^2 + [2]x_1*x_2 + x_2^2 POL(ENCODE_MARK(x_1)) = [1] + [2]x_1 + [2]x_1^2 POL(MARK(x_1)) = [2]x_1 POL(a) = [1] POL(a__b) = [1] POL(a__f(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(b) = 0 POL(c(x_1)) = x_1 POL(c12(x_1, x_2)) = x_1 + x_2 POL(c13) = 0 POL(c14) = 0 POL(c15) = 0 POL(c16(x_1, x_2)) = x_1 + x_2 POL(c17(x_1)) = x_1 POL(c18) = 0 POL(c2(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(c5(x_1, x_2)) = x_1 + x_2 POL(cons_a__b) = [1] POL(cons_a__f(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(cons_mark(x_1)) = [1] + x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(mark(x_1)) = [1] + x_1 ---------------------------------------- (24) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples: A__B -> c14 A__B -> c15 K tuples: MARK(b) -> c17(A__B) MARK(a) -> c18 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) A__F(z0, z1, z2) -> c13 A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) Defined Rule Symbols: encArg_1, a__f_3, a__b, mark_1 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (25) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. A__B -> c14 A__B -> c15 We considered the (Usable) Rules: a__f(z0, z1, z2) -> f(z0, z1, z2) encArg(cons_a__b) -> a__b mark(a) -> a encArg(a) -> a a__b -> b encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) a__f(a, z0, z0) -> a__f(z0, a__b, b) encArg(b) -> b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__b -> a And the Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(A__B) = [1] POL(A__F(x_1, x_2, x_3)) = [2]x_1 + [2]x_3 POL(ENCARG(x_1)) = x_1^2 POL(ENCODE_A__F(x_1, x_2, x_3)) = [1] + [2]x_1 + x_2 + [2]x_3 + [2]x_3^2 + [2]x_2*x_3 + [2]x_1*x_3 + [2]x_1^2 + [2]x_1*x_2 + [2]x_2^2 POL(ENCODE_MARK(x_1)) = [1] + [2]x_1 + [2]x_1^2 POL(MARK(x_1)) = [1] + [2]x_1 POL(a) = [1] POL(a__b) = [1] POL(a__f(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(b) = 0 POL(c(x_1)) = x_1 POL(c12(x_1, x_2)) = x_1 + x_2 POL(c13) = 0 POL(c14) = 0 POL(c15) = 0 POL(c16(x_1, x_2)) = x_1 + x_2 POL(c17(x_1)) = x_1 POL(c18) = 0 POL(c2(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(c5(x_1, x_2)) = x_1 + x_2 POL(cons_a__b) = [1] POL(cons_a__f(x_1, x_2, x_3)) = [2] + x_1 + x_2 + x_3 POL(cons_mark(x_1)) = [2] + x_1 POL(encArg(x_1)) = x_1 POL(f(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(mark(x_1)) = [2] + x_1 ---------------------------------------- (26) Obligation: Complexity Dependency Tuples Problem Rules: encArg(a) -> a encArg(b) -> b encArg(f(z0, z1, z2)) -> f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__f(z0, z1, z2)) -> a__f(encArg(z0), encArg(z1), encArg(z2)) encArg(cons_a__b) -> a__b encArg(cons_mark(z0)) -> mark(encArg(z0)) a__f(a, z0, z0) -> a__f(z0, a__b, b) a__f(z0, z1, z2) -> f(z0, z1, z2) a__b -> a a__b -> b mark(f(z0, z1, z2)) -> a__f(z0, mark(z1), z2) mark(b) -> a__b mark(a) -> a Tuples: ENCARG(f(z0, z1, z2)) -> c2(ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__f(z0, z1, z2)) -> c3(A__F(encArg(z0), encArg(z1), encArg(z2)), ENCARG(z0), ENCARG(z1), ENCARG(z2)) ENCARG(cons_a__b) -> c4(A__B) ENCARG(cons_mark(z0)) -> c5(MARK(encArg(z0)), ENCARG(z0)) A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__F(z0, z1, z2) -> c13 A__B -> c14 A__B -> c15 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) MARK(b) -> c17(A__B) MARK(a) -> c18 ENCODE_A__F(z0, z1, z2) -> c(A__F(encArg(z0), encArg(z1), encArg(z2))) ENCODE_MARK(z0) -> c(MARK(encArg(z0))) S tuples:none K tuples: MARK(b) -> c17(A__B) MARK(a) -> c18 MARK(f(z0, z1, z2)) -> c16(A__F(z0, mark(z1), z2), MARK(z1)) A__F(z0, z1, z2) -> c13 A__F(a, z0, z0) -> c12(A__F(z0, a__b, b), A__B) A__B -> c14 A__B -> c15 Defined Rule Symbols: encArg_1, a__f_3, a__b, mark_1 Defined Pair Symbols: ENCARG_1, A__F_3, A__B, MARK_1, ENCODE_A__F_3, ENCODE_MARK_1 Compound Symbols: c2_3, c3_4, c4_1, c5_2, c12_2, c13, c14, c15, c16_2, c17_1, c18, c_1 ---------------------------------------- (27) SIsEmptyProof (BOTH BOUNDS(ID, ID)) The set S is empty ---------------------------------------- (28) BOUNDS(1, 1) ---------------------------------------- (29) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (30) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b The (relative) TRS S consists of the following rules: encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: FULL ---------------------------------------- (31) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (32) Obligation: TRS: Rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Types: a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark a :: a:b:f:cons_a__f:cons_a__b:cons_mark a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark b :: a:b:f:cons_a__f:cons_a__b:cons_mark mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encArg :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark cons_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark hole_a:b:f:cons_a__f:cons_a__b:cons_mark1_0 :: a:b:f:cons_a__f:cons_a__b:cons_mark gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0 :: Nat -> a:b:f:cons_a__f:cons_a__b:cons_mark ---------------------------------------- (33) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: a__f, mark, encArg They will be analysed ascendingly in the following order: a__f < mark a__f < encArg mark < encArg ---------------------------------------- (34) Obligation: TRS: Rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Types: a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark a :: a:b:f:cons_a__f:cons_a__b:cons_mark a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark b :: a:b:f:cons_a__f:cons_a__b:cons_mark mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encArg :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark cons_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark hole_a:b:f:cons_a__f:cons_a__b:cons_mark1_0 :: a:b:f:cons_a__f:cons_a__b:cons_mark gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0 :: Nat -> a:b:f:cons_a__f:cons_a__b:cons_mark Generator Equations: gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(0) <=> a gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(x, 1)) <=> f(a, gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(x), a) The following defined symbols remain to be analysed: a__f, mark, encArg They will be analysed ascendingly in the following order: a__f < mark a__f < encArg mark < encArg ---------------------------------------- (35) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(1, n62_0))) -> *3_0, rt in Omega(n62_0) Induction Base: mark(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(1, 0))) Induction Step: mark(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(1, +(n62_0, 1)))) ->_R^Omega(1) a__f(a, mark(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(1, n62_0))), a) ->_IH a__f(a, *3_0, a) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (36) Complex Obligation (BEST) ---------------------------------------- (37) Obligation: Proved the lower bound n^1 for the following obligation: TRS: Rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Types: a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark a :: a:b:f:cons_a__f:cons_a__b:cons_mark a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark b :: a:b:f:cons_a__f:cons_a__b:cons_mark mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encArg :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark cons_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark hole_a:b:f:cons_a__f:cons_a__b:cons_mark1_0 :: a:b:f:cons_a__f:cons_a__b:cons_mark gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0 :: Nat -> a:b:f:cons_a__f:cons_a__b:cons_mark Generator Equations: gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(0) <=> a gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(x, 1)) <=> f(a, gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(x), a) The following defined symbols remain to be analysed: mark, encArg They will be analysed ascendingly in the following order: mark < encArg ---------------------------------------- (38) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (39) BOUNDS(n^1, INF) ---------------------------------------- (40) Obligation: TRS: Rules: a__f(a, X, X) -> a__f(X, a__b, b) a__b -> a mark(f(X1, X2, X3)) -> a__f(X1, mark(X2), X3) mark(b) -> a__b mark(a) -> a a__f(X1, X2, X3) -> f(X1, X2, X3) a__b -> b encArg(a) -> a encArg(b) -> b encArg(f(x_1, x_2, x_3)) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__f(x_1, x_2, x_3)) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_a__b) -> a__b encArg(cons_mark(x_1)) -> mark(encArg(x_1)) encode_a__f(x_1, x_2, x_3) -> a__f(encArg(x_1), encArg(x_2), encArg(x_3)) encode_a -> a encode_a__b -> a__b encode_b -> b encode_mark(x_1) -> mark(encArg(x_1)) encode_f(x_1, x_2, x_3) -> f(encArg(x_1), encArg(x_2), encArg(x_3)) Types: a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark a :: a:b:f:cons_a__f:cons_a__b:cons_mark a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark b :: a:b:f:cons_a__f:cons_a__b:cons_mark mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encArg :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark cons_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark cons_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_a :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_a__b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_b :: a:b:f:cons_a__f:cons_a__b:cons_mark encode_mark :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark encode_f :: a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark -> a:b:f:cons_a__f:cons_a__b:cons_mark hole_a:b:f:cons_a__f:cons_a__b:cons_mark1_0 :: a:b:f:cons_a__f:cons_a__b:cons_mark gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0 :: Nat -> a:b:f:cons_a__f:cons_a__b:cons_mark Lemmas: mark(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(1, n62_0))) -> *3_0, rt in Omega(n62_0) Generator Equations: gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(0) <=> a gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(x, 1)) <=> f(a, gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(x), a) The following defined symbols remain to be analysed: encArg ---------------------------------------- (41) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: encArg(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(n72596_0)) -> gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(n72596_0), rt in Omega(0) Induction Base: encArg(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(0)) ->_R^Omega(0) a Induction Step: encArg(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(+(n72596_0, 1))) ->_R^Omega(0) f(encArg(a), encArg(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(n72596_0)), encArg(a)) ->_R^Omega(0) f(a, encArg(gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(n72596_0)), encArg(a)) ->_IH f(a, gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(c72597_0), encArg(a)) ->_R^Omega(0) f(a, gen_a:b:f:cons_a__f:cons_a__b:cons_mark2_0(n72596_0), a) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (42) BOUNDS(1, INF)