/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^1)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). (0) CpxTRS (1) NestedDefinedSymbolProof [UPPER BOUND(ID), 11 ms] (2) CpxTRS (3) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (4) CpxRelTRS (5) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (8) CdtProblem (9) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CdtProblem (11) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CdtProblem (13) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CdtProblem (15) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 63 ms] (16) CdtProblem (17) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 17 ms] (18) CdtProblem (19) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] (20) BOUNDS(1, 1) (21) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxTRS (23) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (24) typed CpxTrs (25) OrderProof [LOWER BOUND(ID), 0 ms] (26) typed CpxTrs (27) RewriteLemmaProof [LOWER BOUND(ID), 553 ms] (28) BEST (29) proven lower bound (30) LowerBoundPropagationProof [FINISHED, 0 ms] (31) BOUNDS(n^1, INF) (32) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). The TRS R consists of the following rules: D(t) -> s(h) D(constant) -> h D(b(x, y)) -> b(D(x), D(y)) D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) NestedDefinedSymbolProof (UPPER BOUND(ID)) The following defined symbols can occur below the 0th argument of b: b, D The following defined symbols can occur below the 1th argument of b: b, D Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: D(b(x, y)) -> b(D(x), D(y)) ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: D(t) -> s(h) D(constant) -> h D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (3) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (4) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: D(t) -> s(h) D(constant) -> h D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(c_b(x, y), z) -> b(x, b(y, z)) The (relative) TRS S consists of the following rules: b(x0, x1) -> c_b(x0, x1) Rewrite Strategy: FULL ---------------------------------------- (5) RcToIrcProof (BOTH BOUNDS(ID, ID)) Converted rc-obligation to irc-obligation. The duplicating contexts are: D(c(x, [])) D(c([], y)) D(div([], y)) D(div(x, [])) D(ln([])) D(pow(x, [])) D(pow([], y)) The defined contexts are: b(x0, []) b(c(x0, []), c(x2, x3)) b(c(x0, x1), c(x2, [])) b(c(c(x0, pow(x1, m(x2, 1))), []), c(c(pow(x4, x5), ln(x6)), x7)) b(c(c(x0, pow(x1, m(x2, 1))), x3), c(c(pow(x4, x5), ln(x6)), [])) As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. ---------------------------------------- (6) 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: D(t) -> s(h) D(constant) -> h D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(c_b(x, y), z) -> b(x, b(y, z)) The (relative) TRS S consists of the following rules: b(x0, x1) -> c_b(x0, x1) Rewrite Strategy: INNERMOST ---------------------------------------- (7) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS to CDT ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: b(z0, z1) -> c_b(z0, z1) b(h, z0) -> z0 b(z0, h) -> z0 b(s(z0), s(z1)) -> s(s(b(z0, z1))) b(c_b(z0, z1), z2) -> b(z0, b(z1, z2)) D(t) -> s(h) D(constant) -> h D(c(z0, z1)) -> b(c(z1, D(z0)), c(z0, D(z1))) D(m(z0, z1)) -> m(D(z0), D(z1)) D(opp(z0)) -> opp(D(z0)) D(div(z0, z1)) -> m(div(D(z0), z1), div(c(z0, D(z1)), pow(z1, 2))) D(ln(z0)) -> div(D(z0), z0) D(pow(z0, z1)) -> b(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))) Tuples: B(z0, z1) -> c1 B(h, z0) -> c2 B(z0, h) -> c3 B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(t) -> c6 D'(constant) -> c7 D'(c(z0, z1)) -> c8(B(c(z1, D(z0)), c(z0, D(z1))), D'(z0), D'(z1)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(pow(z0, z1)) -> c13(B(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))), D'(z0), D'(z1)) S tuples: B(h, z0) -> c2 B(z0, h) -> c3 B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(t) -> c6 D'(constant) -> c7 D'(c(z0, z1)) -> c8(B(c(z1, D(z0)), c(z0, D(z1))), D'(z0), D'(z1)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(pow(z0, z1)) -> c13(B(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))), D'(z0), D'(z1)) K tuples:none Defined Rule Symbols: D_1, b_2 Defined Pair Symbols: B_2, D'_1 Compound Symbols: c1, c2, c3, c4_1, c5_2, c6, c7, c8_3, c9_2, c10_1, c11_2, c12_1, c13_3 ---------------------------------------- (9) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing nodes: D'(constant) -> c7 B(z0, h) -> c3 B(z0, z1) -> c1 D'(t) -> c6 B(h, z0) -> c2 ---------------------------------------- (10) Obligation: Complexity Dependency Tuples Problem Rules: b(z0, z1) -> c_b(z0, z1) b(h, z0) -> z0 b(z0, h) -> z0 b(s(z0), s(z1)) -> s(s(b(z0, z1))) b(c_b(z0, z1), z2) -> b(z0, b(z1, z2)) D(t) -> s(h) D(constant) -> h D(c(z0, z1)) -> b(c(z1, D(z0)), c(z0, D(z1))) D(m(z0, z1)) -> m(D(z0), D(z1)) D(opp(z0)) -> opp(D(z0)) D(div(z0, z1)) -> m(div(D(z0), z1), div(c(z0, D(z1)), pow(z1, 2))) D(ln(z0)) -> div(D(z0), z0) D(pow(z0, z1)) -> b(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))) Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(c(z0, z1)) -> c8(B(c(z1, D(z0)), c(z0, D(z1))), D'(z0), D'(z1)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(pow(z0, z1)) -> c13(B(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))), D'(z0), D'(z1)) S tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(c(z0, z1)) -> c8(B(c(z1, D(z0)), c(z0, D(z1))), D'(z0), D'(z1)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(pow(z0, z1)) -> c13(B(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))), D'(z0), D'(z1)) K tuples:none Defined Rule Symbols: D_1, b_2 Defined Pair Symbols: B_2, D'_1 Compound Symbols: c4_1, c5_2, c8_3, c9_2, c10_1, c11_2, c12_1, c13_3 ---------------------------------------- (11) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (12) Obligation: Complexity Dependency Tuples Problem Rules: b(z0, z1) -> c_b(z0, z1) b(h, z0) -> z0 b(z0, h) -> z0 b(s(z0), s(z1)) -> s(s(b(z0, z1))) b(c_b(z0, z1), z2) -> b(z0, b(z1, z2)) D(t) -> s(h) D(constant) -> h D(c(z0, z1)) -> b(c(z1, D(z0)), c(z0, D(z1))) D(m(z0, z1)) -> m(D(z0), D(z1)) D(opp(z0)) -> opp(D(z0)) D(div(z0, z1)) -> m(div(D(z0), z1), div(c(z0, D(z1)), pow(z1, 2))) D(ln(z0)) -> div(D(z0), z0) D(pow(z0, z1)) -> b(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))) Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) S tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) K tuples:none Defined Rule Symbols: D_1, b_2 Defined Pair Symbols: B_2, D'_1 Compound Symbols: c4_1, c5_2, c9_2, c10_1, c11_2, c12_1, c8_2, c13_2 ---------------------------------------- (13) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: D(t) -> s(h) D(constant) -> h D(c(z0, z1)) -> b(c(z1, D(z0)), c(z0, D(z1))) D(m(z0, z1)) -> m(D(z0), D(z1)) D(opp(z0)) -> opp(D(z0)) D(div(z0, z1)) -> m(div(D(z0), z1), div(c(z0, D(z1)), pow(z1, 2))) D(ln(z0)) -> div(D(z0), z0) D(pow(z0, z1)) -> b(c(c(z1, pow(z0, m(z1, 1))), D(z0)), c(c(pow(z0, z1), ln(z0)), D(z1))) ---------------------------------------- (14) Obligation: Complexity Dependency Tuples Problem Rules: b(z0, z1) -> c_b(z0, z1) b(h, z0) -> z0 b(z0, h) -> z0 b(s(z0), s(z1)) -> s(s(b(z0, z1))) b(c_b(z0, z1), z2) -> b(z0, b(z1, z2)) Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) S tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) K tuples:none Defined Rule Symbols: b_2 Defined Pair Symbols: B_2, D'_1 Compound Symbols: c4_1, c5_2, c9_2, c10_1, c11_2, c12_1, c8_2, c13_2 ---------------------------------------- (15) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) We considered the (Usable) Rules:none And the Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(B(x_1, x_2)) = x_1 POL(D'(x_1)) = x_1 POL(b(x_1, x_2)) = [1] + x_1 + x_2 POL(c(x_1, x_2)) = [1] + x_1 + x_2 POL(c10(x_1)) = x_1 POL(c11(x_1, x_2)) = x_1 + x_2 POL(c12(x_1)) = x_1 POL(c13(x_1, x_2)) = x_1 + x_2 POL(c4(x_1)) = x_1 POL(c5(x_1, x_2)) = x_1 + x_2 POL(c8(x_1, x_2)) = x_1 + x_2 POL(c9(x_1, x_2)) = x_1 + x_2 POL(c_b(x_1, x_2)) = [1] + x_1 + x_2 POL(div(x_1, x_2)) = [1] + x_1 + x_2 POL(h) = 0 POL(ln(x_1)) = [1] + x_1 POL(m(x_1, x_2)) = [1] + x_1 + x_2 POL(opp(x_1)) = [1] + x_1 POL(pow(x_1, x_2)) = [1] + x_1 + x_2 POL(s(x_1)) = x_1 ---------------------------------------- (16) Obligation: Complexity Dependency Tuples Problem Rules: b(z0, z1) -> c_b(z0, z1) b(h, z0) -> z0 b(z0, h) -> z0 b(s(z0), s(z1)) -> s(s(b(z0, z1))) b(c_b(z0, z1), z2) -> b(z0, b(z1, z2)) Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) S tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) K tuples: B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) Defined Rule Symbols: b_2 Defined Pair Symbols: B_2, D'_1 Compound Symbols: c4_1, c5_2, c9_2, c10_1, c11_2, c12_1, c8_2, c13_2 ---------------------------------------- (17) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. B(s(z0), s(z1)) -> c4(B(z0, z1)) We considered the (Usable) Rules:none And the Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(B(x_1, x_2)) = [1] + x_1 POL(D'(x_1)) = 0 POL(b(x_1, x_2)) = [1] + x_1 + x_2 POL(c(x_1, x_2)) = [1] + x_1 + x_2 POL(c10(x_1)) = x_1 POL(c11(x_1, x_2)) = x_1 + x_2 POL(c12(x_1)) = x_1 POL(c13(x_1, x_2)) = x_1 + x_2 POL(c4(x_1)) = x_1 POL(c5(x_1, x_2)) = x_1 + x_2 POL(c8(x_1, x_2)) = x_1 + x_2 POL(c9(x_1, x_2)) = x_1 + x_2 POL(c_b(x_1, x_2)) = [1] + x_1 + x_2 POL(div(x_1, x_2)) = [1] + x_1 + x_2 POL(h) = 0 POL(ln(x_1)) = x_1 POL(m(x_1, x_2)) = [1] + x_1 + x_2 POL(opp(x_1)) = x_1 POL(pow(x_1, x_2)) = [1] + x_1 + x_2 POL(s(x_1)) = [1] + x_1 ---------------------------------------- (18) Obligation: Complexity Dependency Tuples Problem Rules: b(z0, z1) -> c_b(z0, z1) b(h, z0) -> z0 b(z0, h) -> z0 b(s(z0), s(z1)) -> s(s(b(z0, z1))) b(c_b(z0, z1), z2) -> b(z0, b(z1, z2)) Tuples: B(s(z0), s(z1)) -> c4(B(z0, z1)) B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) S tuples:none K tuples: B(c_b(z0, z1), z2) -> c5(B(z0, b(z1, z2)), B(z1, z2)) D'(m(z0, z1)) -> c9(D'(z0), D'(z1)) D'(opp(z0)) -> c10(D'(z0)) D'(div(z0, z1)) -> c11(D'(z0), D'(z1)) D'(ln(z0)) -> c12(D'(z0)) D'(c(z0, z1)) -> c8(D'(z0), D'(z1)) D'(pow(z0, z1)) -> c13(D'(z0), D'(z1)) B(s(z0), s(z1)) -> c4(B(z0, z1)) Defined Rule Symbols: b_2 Defined Pair Symbols: B_2, D'_1 Compound Symbols: c4_1, c5_2, c9_2, c10_1, c11_2, c12_1, c8_2, c13_2 ---------------------------------------- (19) SIsEmptyProof (BOTH BOUNDS(ID, ID)) The set S is empty ---------------------------------------- (20) BOUNDS(1, 1) ---------------------------------------- (21) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (22) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: D(t) -> s(h) D(constant) -> h D(b(x, y)) -> b(D(x), D(y)) D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2'))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1'))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (23) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (24) Obligation: TRS: Rules: D(t) -> s(h) D(constant) -> h D(b(x, y)) -> b(D(x), D(y)) D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2'))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1'))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) Types: D :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' t :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' s :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' h :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' constant :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' b :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' c :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' m :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' opp :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' div :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' pow :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 2' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' ln :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 1' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' hole_t:h:s:constant:c:m:opp:div:2':pow:ln:1'1_0 :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0 :: Nat -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' ---------------------------------------- (25) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: D, b They will be analysed ascendingly in the following order: b < D ---------------------------------------- (26) Obligation: TRS: Rules: D(t) -> s(h) D(constant) -> h D(b(x, y)) -> b(D(x), D(y)) D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2'))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1'))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) Types: D :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' t :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' s :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' h :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' constant :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' b :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' c :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' m :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' opp :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' div :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' pow :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 2' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' ln :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 1' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' hole_t:h:s:constant:c:m:opp:div:2':pow:ln:1'1_0 :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0 :: Nat -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' Generator Equations: gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(0) <=> t gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(x, 1)) <=> s(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(x)) The following defined symbols remain to be analysed: b, D They will be analysed ascendingly in the following order: b < D ---------------------------------------- (27) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: b(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, n4_0)), gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, n4_0))) -> *3_0, rt in Omega(n4_0) Induction Base: b(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, 0)), gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, 0))) Induction Step: b(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, +(n4_0, 1))), gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, +(n4_0, 1)))) ->_R^Omega(1) s(s(b(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, n4_0)), gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, n4_0))))) ->_IH s(s(*3_0)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (28) Complex Obligation (BEST) ---------------------------------------- (29) Obligation: Proved the lower bound n^1 for the following obligation: TRS: Rules: D(t) -> s(h) D(constant) -> h D(b(x, y)) -> b(D(x), D(y)) D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2'))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1'))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) Types: D :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' t :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' s :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' h :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' constant :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' b :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' c :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' m :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' opp :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' div :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' pow :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 2' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' ln :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 1' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' hole_t:h:s:constant:c:m:opp:div:2':pow:ln:1'1_0 :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0 :: Nat -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' Generator Equations: gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(0) <=> t gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(x, 1)) <=> s(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(x)) The following defined symbols remain to be analysed: b, D They will be analysed ascendingly in the following order: b < D ---------------------------------------- (30) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (31) BOUNDS(n^1, INF) ---------------------------------------- (32) Obligation: TRS: Rules: D(t) -> s(h) D(constant) -> h D(b(x, y)) -> b(D(x), D(y)) D(c(x, y)) -> b(c(y, D(x)), c(x, D(y))) D(m(x, y)) -> m(D(x), D(y)) D(opp(x)) -> opp(D(x)) D(div(x, y)) -> m(div(D(x), y), div(c(x, D(y)), pow(y, 2'))) D(ln(x)) -> div(D(x), x) D(pow(x, y)) -> b(c(c(y, pow(x, m(y, 1'))), D(x)), c(c(pow(x, y), ln(x)), D(y))) b(h, x) -> x b(x, h) -> x b(s(x), s(y)) -> s(s(b(x, y))) b(b(x, y), z) -> b(x, b(y, z)) Types: D :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' t :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' s :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' h :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' constant :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' b :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' c :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' m :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' opp :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' div :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' pow :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 2' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' ln :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' 1' :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' hole_t:h:s:constant:c:m:opp:div:2':pow:ln:1'1_0 :: t:h:s:constant:c:m:opp:div:2':pow:ln:1' gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0 :: Nat -> t:h:s:constant:c:m:opp:div:2':pow:ln:1' Lemmas: b(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, n4_0)), gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(1, n4_0))) -> *3_0, rt in Omega(n4_0) Generator Equations: gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(0) <=> t gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(+(x, 1)) <=> s(gen_t:h:s:constant:c:m:opp:div:2':pow:ln:1'2_0(x)) The following defined symbols remain to be analysed: D