WORST_CASE(NON_POLY,?) proof of input_Lrk7uKblpj.trs # AProVE Commit ID: 5b976082cb74a395683ed8cc7acf94bd611ab29f fuhs 20230524 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). (0) CpxTRS (1) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CdtProblem (3) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxRelTRS (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 10 ms] (8) typed CpxTrs (9) OrderProof [LOWER BOUND(ID), 0 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 2134 ms] (12) BEST (13) proven lower bound (14) LowerBoundPropagationProof [FINISHED, 0 ms] (15) BOUNDS(n^1, INF) (16) typed CpxTrs (17) RewriteLemmaProof [FINISHED, 348 ms] (18) BOUNDS(EXP, INF) ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). The TRS R consists of the following rules: +(0, y) -> y +(s(x), y) -> s(+(x, y)) *(x, 0) -> 0 *(x, s(y)) -> +(x, *(x, y)) twice(0) -> 0 twice(s(x)) -> s(s(twice(x))) -(x, 0) -> x -(s(x), s(y)) -> -(x, y) f(s(x)) -> f(-(*(s(s(x)), s(s(x))), +(*(s(x), s(s(x))), s(s(0))))) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (2) Obligation: Complexity Dependency Tuples Problem Rules: +(0, z0) -> z0 +(s(z0), z1) -> s(+(z0, z1)) *(z0, 0) -> 0 *(z0, s(z1)) -> +(z0, *(z0, z1)) twice(0) -> 0 twice(s(z0)) -> s(s(twice(z0))) -(z0, 0) -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))) Tuples: +'(0, z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0) -> c2 *'(z0, s(z1)) -> c3(+'(z0, *(z0, z1)), *'(z0, z1)) TWICE(0) -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0) -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))), -'(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0)))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))), -'(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0)))), +'(*(s(z0), s(s(z0))), s(s(0))), *'(s(z0), s(s(z0)))) S tuples: +'(0, z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0) -> c2 *'(z0, s(z1)) -> c3(+'(z0, *(z0, z1)), *'(z0, z1)) TWICE(0) -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0) -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))), -'(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0)))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))), -'(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0)))), +'(*(s(z0), s(s(z0))), s(s(0))), *'(s(z0), s(s(z0)))) K tuples:none Defined Rule Symbols: +_2, *_2, twice_1, -_2, f_1 Defined Pair Symbols: +'_2, *'_2, TWICE_1, -'_2, F_1 Compound Symbols: c, c1_1, c2, c3_2, c4, c5_1, c6, c7_1, c8_3, c9_4 ---------------------------------------- (3) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(EXP, INF). The TRS R consists of the following rules: +'(0, z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0) -> c2 *'(z0, s(z1)) -> c3(+'(z0, *(z0, z1)), *'(z0, z1)) TWICE(0) -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0) -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))), -'(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0)))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))), -'(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0)))), +'(*(s(z0), s(s(z0))), s(s(0))), *'(s(z0), s(s(z0)))) The (relative) TRS S consists of the following rules: +(0, z0) -> z0 +(s(z0), z1) -> s(+(z0, z1)) *(z0, 0) -> 0 *(z0, s(z1)) -> +(z0, *(z0, z1)) twice(0) -> 0 twice(s(z0)) -> s(s(twice(z0))) -(z0, 0) -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*(s(s(z0)), s(s(z0))), +(*(s(z0), s(s(z0))), s(s(0))))) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(EXP, INF). The TRS R consists of the following rules: +'(0', z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0') -> c2 *'(z0, s(z1)) -> c3(+'(z0, *'(z0, z1)), *'(z0, z1)) TWICE(0') -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0') -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), +'(*'(s(z0), s(s(z0))), s(s(0'))), *'(s(z0), s(s(z0)))) The (relative) TRS S consists of the following rules: +'(0', z0) -> z0 +'(s(z0), z1) -> s(+'(z0, z1)) *'(z0, 0') -> 0' *'(z0, s(z1)) -> +'(z0, *'(z0, z1)) twice(0') -> 0' twice(s(z0)) -> s(s(twice(z0))) -(z0, 0') -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))) Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (8) Obligation: Innermost TRS: Rules: +'(0', z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0') -> c2 *'(z0, s(z1)) -> c3(+'(z0, *'(z0, z1)), *'(z0, z1)) TWICE(0') -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0') -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), +'(*'(s(z0), s(s(z0))), s(s(0'))), *'(s(z0), s(s(z0)))) +'(0', z0) -> z0 +'(s(z0), z1) -> s(+'(z0, z1)) *'(z0, 0') -> 0' *'(z0, s(z1)) -> +'(z0, *'(z0, z1)) twice(0') -> 0' twice(s(z0)) -> s(s(twice(z0))) -(z0, 0') -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))) Types: +' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 0' :: 0':c:s:c1:c2:c3 c :: 0':c:s:c1:c2:c3 s :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c1 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 *' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c2 :: 0':c:s:c1:c2:c3 c3 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 TWICE :: 0':c:s:c1:c2:c3 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 -' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c6:c7 F :: 0':c:s:c1:c2:c3 -> c8:c9 c8 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> c8:c9 - :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c9 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c8:c9 twice :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 f :: 0':c:s:c1:c2:c3 -> f hole_0':c:s:c1:c2:c31_10 :: 0':c:s:c1:c2:c3 hole_c4:c52_10 :: c4:c5 hole_c6:c73_10 :: c6:c7 hole_c8:c94_10 :: c8:c9 hole_f5_10 :: f gen_0':c:s:c1:c2:c36_10 :: Nat -> 0':c:s:c1:c2:c3 gen_c4:c57_10 :: Nat -> c4:c5 gen_c6:c78_10 :: Nat -> c6:c7 gen_c8:c99_10 :: Nat -> c8:c9 ---------------------------------------- (9) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: +', *', TWICE, -', F, -, twice, f They will be analysed ascendingly in the following order: +' < *' +' < F +' < f *' < F *' < f -' < F - < F - < f ---------------------------------------- (10) Obligation: Innermost TRS: Rules: +'(0', z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0') -> c2 *'(z0, s(z1)) -> c3(+'(z0, *'(z0, z1)), *'(z0, z1)) TWICE(0') -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0') -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), +'(*'(s(z0), s(s(z0))), s(s(0'))), *'(s(z0), s(s(z0)))) +'(0', z0) -> z0 +'(s(z0), z1) -> s(+'(z0, z1)) *'(z0, 0') -> 0' *'(z0, s(z1)) -> +'(z0, *'(z0, z1)) twice(0') -> 0' twice(s(z0)) -> s(s(twice(z0))) -(z0, 0') -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))) Types: +' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 0' :: 0':c:s:c1:c2:c3 c :: 0':c:s:c1:c2:c3 s :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c1 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 *' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c2 :: 0':c:s:c1:c2:c3 c3 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 TWICE :: 0':c:s:c1:c2:c3 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 -' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c6:c7 F :: 0':c:s:c1:c2:c3 -> c8:c9 c8 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> c8:c9 - :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c9 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c8:c9 twice :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 f :: 0':c:s:c1:c2:c3 -> f hole_0':c:s:c1:c2:c31_10 :: 0':c:s:c1:c2:c3 hole_c4:c52_10 :: c4:c5 hole_c6:c73_10 :: c6:c7 hole_c8:c94_10 :: c8:c9 hole_f5_10 :: f gen_0':c:s:c1:c2:c36_10 :: Nat -> 0':c:s:c1:c2:c3 gen_c4:c57_10 :: Nat -> c4:c5 gen_c6:c78_10 :: Nat -> c6:c7 gen_c8:c99_10 :: Nat -> c8:c9 Generator Equations: gen_0':c:s:c1:c2:c36_10(0) <=> 0' gen_0':c:s:c1:c2:c36_10(+(x, 1)) <=> s(gen_0':c:s:c1:c2:c36_10(x)) gen_c4:c57_10(0) <=> c4 gen_c4:c57_10(+(x, 1)) <=> c5(gen_c4:c57_10(x)) gen_c6:c78_10(0) <=> c6 gen_c6:c78_10(+(x, 1)) <=> c7(gen_c6:c78_10(x)) gen_c8:c99_10(0) <=> hole_c8:c94_10 gen_c8:c99_10(+(x, 1)) <=> c8(gen_c8:c99_10(x), c6, 0') The following defined symbols remain to be analysed: +', *', TWICE, -', F, -, twice, f They will be analysed ascendingly in the following order: +' < *' +' < F +' < f *' < F *' < f -' < F - < F - < f ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: +'(gen_0':c:s:c1:c2:c36_10(+(1, n11_10)), gen_0':c:s:c1:c2:c36_10(b)) -> *10_10, rt in Omega(n11_10) Induction Base: +'(gen_0':c:s:c1:c2:c36_10(+(1, 0)), gen_0':c:s:c1:c2:c36_10(b)) Induction Step: +'(gen_0':c:s:c1:c2:c36_10(+(1, +(n11_10, 1))), gen_0':c:s:c1:c2:c36_10(b)) ->_R^Omega(1) c1(+'(gen_0':c:s:c1:c2:c36_10(+(1, n11_10)), gen_0':c:s:c1:c2:c36_10(b))) ->_IH c1(*10_10) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (12) Complex Obligation (BEST) ---------------------------------------- (13) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: +'(0', z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0') -> c2 *'(z0, s(z1)) -> c3(+'(z0, *'(z0, z1)), *'(z0, z1)) TWICE(0') -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0') -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), +'(*'(s(z0), s(s(z0))), s(s(0'))), *'(s(z0), s(s(z0)))) +'(0', z0) -> z0 +'(s(z0), z1) -> s(+'(z0, z1)) *'(z0, 0') -> 0' *'(z0, s(z1)) -> +'(z0, *'(z0, z1)) twice(0') -> 0' twice(s(z0)) -> s(s(twice(z0))) -(z0, 0') -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))) Types: +' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 0' :: 0':c:s:c1:c2:c3 c :: 0':c:s:c1:c2:c3 s :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c1 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 *' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c2 :: 0':c:s:c1:c2:c3 c3 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 TWICE :: 0':c:s:c1:c2:c3 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 -' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c6:c7 F :: 0':c:s:c1:c2:c3 -> c8:c9 c8 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> c8:c9 - :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c9 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c8:c9 twice :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 f :: 0':c:s:c1:c2:c3 -> f hole_0':c:s:c1:c2:c31_10 :: 0':c:s:c1:c2:c3 hole_c4:c52_10 :: c4:c5 hole_c6:c73_10 :: c6:c7 hole_c8:c94_10 :: c8:c9 hole_f5_10 :: f gen_0':c:s:c1:c2:c36_10 :: Nat -> 0':c:s:c1:c2:c3 gen_c4:c57_10 :: Nat -> c4:c5 gen_c6:c78_10 :: Nat -> c6:c7 gen_c8:c99_10 :: Nat -> c8:c9 Generator Equations: gen_0':c:s:c1:c2:c36_10(0) <=> 0' gen_0':c:s:c1:c2:c36_10(+(x, 1)) <=> s(gen_0':c:s:c1:c2:c36_10(x)) gen_c4:c57_10(0) <=> c4 gen_c4:c57_10(+(x, 1)) <=> c5(gen_c4:c57_10(x)) gen_c6:c78_10(0) <=> c6 gen_c6:c78_10(+(x, 1)) <=> c7(gen_c6:c78_10(x)) gen_c8:c99_10(0) <=> hole_c8:c94_10 gen_c8:c99_10(+(x, 1)) <=> c8(gen_c8:c99_10(x), c6, 0') The following defined symbols remain to be analysed: +', *', TWICE, -', F, -, twice, f They will be analysed ascendingly in the following order: +' < *' +' < F +' < f *' < F *' < f -' < F - < F - < f ---------------------------------------- (14) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (15) BOUNDS(n^1, INF) ---------------------------------------- (16) Obligation: Innermost TRS: Rules: +'(0', z0) -> c +'(s(z0), z1) -> c1(+'(z0, z1)) *'(z0, 0') -> c2 *'(z0, s(z1)) -> c3(+'(z0, *'(z0, z1)), *'(z0, z1)) TWICE(0') -> c4 TWICE(s(z0)) -> c5(TWICE(z0)) -'(z0, 0') -> c6 -'(s(z0), s(z1)) -> c7(-'(z0, z1)) F(s(z0)) -> c8(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), *'(s(s(z0)), s(s(z0)))) F(s(z0)) -> c9(F(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))), -'(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0')))), +'(*'(s(z0), s(s(z0))), s(s(0'))), *'(s(z0), s(s(z0)))) +'(0', z0) -> z0 +'(s(z0), z1) -> s(+'(z0, z1)) *'(z0, 0') -> 0' *'(z0, s(z1)) -> +'(z0, *'(z0, z1)) twice(0') -> 0' twice(s(z0)) -> s(s(twice(z0))) -(z0, 0') -> z0 -(s(z0), s(z1)) -> -(z0, z1) f(s(z0)) -> f(-(*'(s(s(z0)), s(s(z0))), +'(*'(s(z0), s(s(z0))), s(s(0'))))) Types: +' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 0' :: 0':c:s:c1:c2:c3 c :: 0':c:s:c1:c2:c3 s :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c1 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 *' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c2 :: 0':c:s:c1:c2:c3 c3 :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 TWICE :: 0':c:s:c1:c2:c3 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 -> c4:c5 -' :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c6:c7 c6 :: c6:c7 c7 :: c6:c7 -> c6:c7 F :: 0':c:s:c1:c2:c3 -> c8:c9 c8 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> c8:c9 - :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 c9 :: c8:c9 -> c6:c7 -> 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 -> c8:c9 twice :: 0':c:s:c1:c2:c3 -> 0':c:s:c1:c2:c3 f :: 0':c:s:c1:c2:c3 -> f hole_0':c:s:c1:c2:c31_10 :: 0':c:s:c1:c2:c3 hole_c4:c52_10 :: c4:c5 hole_c6:c73_10 :: c6:c7 hole_c8:c94_10 :: c8:c9 hole_f5_10 :: f gen_0':c:s:c1:c2:c36_10 :: Nat -> 0':c:s:c1:c2:c3 gen_c4:c57_10 :: Nat -> c4:c5 gen_c6:c78_10 :: Nat -> c6:c7 gen_c8:c99_10 :: Nat -> c8:c9 Lemmas: +'(gen_0':c:s:c1:c2:c36_10(+(1, n11_10)), gen_0':c:s:c1:c2:c36_10(b)) -> *10_10, rt in Omega(n11_10) Generator Equations: gen_0':c:s:c1:c2:c36_10(0) <=> 0' gen_0':c:s:c1:c2:c36_10(+(x, 1)) <=> s(gen_0':c:s:c1:c2:c36_10(x)) gen_c4:c57_10(0) <=> c4 gen_c4:c57_10(+(x, 1)) <=> c5(gen_c4:c57_10(x)) gen_c6:c78_10(0) <=> c6 gen_c6:c78_10(+(x, 1)) <=> c7(gen_c6:c78_10(x)) gen_c8:c99_10(0) <=> hole_c8:c94_10 gen_c8:c99_10(+(x, 1)) <=> c8(gen_c8:c99_10(x), c6, 0') The following defined symbols remain to be analysed: *', TWICE, -', F, -, twice, f They will be analysed ascendingly in the following order: *' < F *' < f -' < F - < F - < f ---------------------------------------- (17) RewriteLemmaProof (FINISHED) Proved the following rewrite lemma: *'(gen_0':c:s:c1:c2:c36_10(a), gen_0':c:s:c1:c2:c36_10(+(1, n2103_10))) -> *10_10, rt in Omega(EXP) Induction Base: *'(gen_0':c:s:c1:c2:c36_10(a), gen_0':c:s:c1:c2:c36_10(+(1, 0))) Induction Step: *'(gen_0':c:s:c1:c2:c36_10(a), gen_0':c:s:c1:c2:c36_10(+(1, +(n2103_10, 1)))) ->_R^Omega(1) c3(+'(gen_0':c:s:c1:c2:c36_10(a), *'(gen_0':c:s:c1:c2:c36_10(a), gen_0':c:s:c1:c2:c36_10(+(1, n2103_10)))), *'(gen_0':c:s:c1:c2:c36_10(a), gen_0':c:s:c1:c2:c36_10(+(1, n2103_10)))) ->_IH c3(+'(gen_0':c:s:c1:c2:c36_10(a), *10_10), *'(gen_0':c:s:c1:c2:c36_10(a), gen_0':c:s:c1:c2:c36_10(+(1, n2103_10)))) ->_IH c3(+'(gen_0':c:s:c1:c2:c36_10(a), *10_10), *10_10) We have rt in EXP and sz in O(n). Thus, we have irc_R in EXP ---------------------------------------- (18) BOUNDS(EXP, INF)