WORST_CASE(NON_POLY,?) proof of /export/starexec/sandbox/benchmark/theBenchmark.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 mhark 20210624 unpublished The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(EXP, INF). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 295 ms] (2) CpxRelTRS (3) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (6) typed CpxTrs (7) OrderProof [LOWER BOUND(ID), 0 ms] (8) typed CpxTrs (9) RewriteLemmaProof [LOWER BOUND(ID), 3406 ms] (10) BEST (11) proven lower bound (12) LowerBoundPropagationProof [FINISHED, 0 ms] (13) BOUNDS(n^1, INF) (14) typed CpxTrs (15) RewriteLemmaProof [FINISHED, 9527 ms] (16) BOUNDS(EXP, INF) ---------------------------------------- (0) 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: +'(z0, 0) -> c +'(0, z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0) -> c3 *'(0, z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*(z0, z1), +(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*(z0, z1), +(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) The (relative) TRS S consists of the following rules: +(z0, 0) -> z0 +(0, z0) -> z0 +(s(z0), s(z1)) -> s(s(+(z0, z1))) *(z0, 0) -> 0 *(0, z0) -> 0 *(s(z0), s(z1)) -> s(+(*(z0, z1), +(z0, z1))) sum(nil) -> 0 sum(cons(z0, z1)) -> +(z0, sum(z1)) prod(nil) -> s(0) prod(cons(z0, z1)) -> *(z0, prod(z1)) Rewrite Strategy: INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) 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: +'(z0, 0) -> c +'(0, z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0) -> c3 *'(0, z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*(z0, z1), +(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*(z0, z1), +(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) The (relative) TRS S consists of the following rules: +(z0, 0) -> z0 +(0, z0) -> z0 +(s(z0), s(z1)) -> s(s(+(z0, z1))) *(z0, 0) -> 0 *(0, z0) -> 0 *(s(z0), s(z1)) -> s(+(*(z0, z1), +(z0, z1))) sum(nil) -> 0 sum(cons(z0, z1)) -> +(z0, sum(z1)) prod(nil) -> s(0) prod(cons(z0, z1)) -> *(z0, prod(z1)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (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: +'(z0, 0') -> c +'(0', z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0') -> c3 *'(0', z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*'(z0, z1), +'(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*'(z0, z1), +'(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) The (relative) TRS S consists of the following rules: +'(z0, 0') -> z0 +'(0', z0) -> z0 +'(s(z0), s(z1)) -> s(s(+'(z0, z1))) *'(z0, 0') -> 0' *'(0', z0) -> 0' *'(s(z0), s(z1)) -> s(+'(*'(z0, z1), +'(z0, z1))) sum(nil) -> 0' sum(cons(z0, z1)) -> +'(z0, sum(z1)) prod(nil) -> s(0') prod(cons(z0, z1)) -> *'(z0, prod(z1)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (6) Obligation: Innermost TRS: Rules: +'(z0, 0') -> c +'(0', z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0') -> c3 *'(0', z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*'(z0, z1), +'(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*'(z0, z1), +'(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) +'(z0, 0') -> z0 +'(0', z0) -> z0 +'(s(z0), s(z1)) -> s(s(+'(z0, z1))) *'(z0, 0') -> 0' *'(0', z0) -> 0' *'(s(z0), s(z1)) -> s(+'(*'(z0, z1), +'(z0, z1))) sum(nil) -> 0' sum(cons(z0, z1)) -> +'(z0, sum(z1)) prod(nil) -> s(0') prod(cons(z0, z1)) -> *'(z0, prod(z1)) Types: +' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 0' :: 0':c:c1:s:c2:c3:c4:c5:c6 c :: 0':c:c1:s:c2:c3:c4:c5:c6 c1 :: 0':c:c1:s:c2:c3:c4:c5:c6 s :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c2 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 *' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c3 :: 0':c:c1:s:c2:c3:c4:c5:c6 c4 :: 0':c:c1:s:c2:c3:c4:c5:c6 c5 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c6 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 SUM :: nil:cons -> c7:c8 nil :: nil:cons c7 :: c7:c8 cons :: 0':c:c1:s:c2:c3:c4:c5:c6 -> nil:cons -> nil:cons c8 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c7:c8 -> c7:c8 sum :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 PROD :: nil:cons -> c9:c10 c9 :: c9:c10 c10 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c9:c10 -> c9:c10 prod :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 hole_0':c:c1:s:c2:c3:c4:c5:c61_11 :: 0':c:c1:s:c2:c3:c4:c5:c6 hole_c7:c82_11 :: c7:c8 hole_nil:cons3_11 :: nil:cons hole_c9:c104_11 :: c9:c10 gen_0':c:c1:s:c2:c3:c4:c5:c65_11 :: Nat -> 0':c:c1:s:c2:c3:c4:c5:c6 gen_c7:c86_11 :: Nat -> c7:c8 gen_nil:cons7_11 :: Nat -> nil:cons gen_c9:c108_11 :: Nat -> c9:c10 ---------------------------------------- (7) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: +', *', SUM, sum, PROD, prod They will be analysed ascendingly in the following order: +' < *' +' < SUM +' < sum *' < PROD *' < prod sum < SUM prod < PROD ---------------------------------------- (8) Obligation: Innermost TRS: Rules: +'(z0, 0') -> c +'(0', z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0') -> c3 *'(0', z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*'(z0, z1), +'(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*'(z0, z1), +'(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) +'(z0, 0') -> z0 +'(0', z0) -> z0 +'(s(z0), s(z1)) -> s(s(+'(z0, z1))) *'(z0, 0') -> 0' *'(0', z0) -> 0' *'(s(z0), s(z1)) -> s(+'(*'(z0, z1), +'(z0, z1))) sum(nil) -> 0' sum(cons(z0, z1)) -> +'(z0, sum(z1)) prod(nil) -> s(0') prod(cons(z0, z1)) -> *'(z0, prod(z1)) Types: +' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 0' :: 0':c:c1:s:c2:c3:c4:c5:c6 c :: 0':c:c1:s:c2:c3:c4:c5:c6 c1 :: 0':c:c1:s:c2:c3:c4:c5:c6 s :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c2 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 *' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c3 :: 0':c:c1:s:c2:c3:c4:c5:c6 c4 :: 0':c:c1:s:c2:c3:c4:c5:c6 c5 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c6 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 SUM :: nil:cons -> c7:c8 nil :: nil:cons c7 :: c7:c8 cons :: 0':c:c1:s:c2:c3:c4:c5:c6 -> nil:cons -> nil:cons c8 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c7:c8 -> c7:c8 sum :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 PROD :: nil:cons -> c9:c10 c9 :: c9:c10 c10 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c9:c10 -> c9:c10 prod :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 hole_0':c:c1:s:c2:c3:c4:c5:c61_11 :: 0':c:c1:s:c2:c3:c4:c5:c6 hole_c7:c82_11 :: c7:c8 hole_nil:cons3_11 :: nil:cons hole_c9:c104_11 :: c9:c10 gen_0':c:c1:s:c2:c3:c4:c5:c65_11 :: Nat -> 0':c:c1:s:c2:c3:c4:c5:c6 gen_c7:c86_11 :: Nat -> c7:c8 gen_nil:cons7_11 :: Nat -> nil:cons gen_c9:c108_11 :: Nat -> c9:c10 Generator Equations: gen_0':c:c1:s:c2:c3:c4:c5:c65_11(0) <=> 0' gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(x, 1)) <=> s(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(x)) gen_c7:c86_11(0) <=> c7 gen_c7:c86_11(+(x, 1)) <=> c8(0', gen_c7:c86_11(x)) gen_nil:cons7_11(0) <=> nil gen_nil:cons7_11(+(x, 1)) <=> cons(0', gen_nil:cons7_11(x)) gen_c9:c108_11(0) <=> c9 gen_c9:c108_11(+(x, 1)) <=> c10(0', gen_c9:c108_11(x)) The following defined symbols remain to be analysed: +', *', SUM, sum, PROD, prod They will be analysed ascendingly in the following order: +' < *' +' < SUM +' < sum *' < PROD *' < prod sum < SUM prod < PROD ---------------------------------------- (9) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: +'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n10_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n10_11))) -> *9_11, rt in Omega(n10_11) Induction Base: +'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, 0)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, 0))) Induction Step: +'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, +(n10_11, 1))), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, +(n10_11, 1)))) ->_R^Omega(1) c2(+'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n10_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n10_11)))) ->_IH c2(*9_11) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (10) Complex Obligation (BEST) ---------------------------------------- (11) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: +'(z0, 0') -> c +'(0', z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0') -> c3 *'(0', z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*'(z0, z1), +'(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*'(z0, z1), +'(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) +'(z0, 0') -> z0 +'(0', z0) -> z0 +'(s(z0), s(z1)) -> s(s(+'(z0, z1))) *'(z0, 0') -> 0' *'(0', z0) -> 0' *'(s(z0), s(z1)) -> s(+'(*'(z0, z1), +'(z0, z1))) sum(nil) -> 0' sum(cons(z0, z1)) -> +'(z0, sum(z1)) prod(nil) -> s(0') prod(cons(z0, z1)) -> *'(z0, prod(z1)) Types: +' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 0' :: 0':c:c1:s:c2:c3:c4:c5:c6 c :: 0':c:c1:s:c2:c3:c4:c5:c6 c1 :: 0':c:c1:s:c2:c3:c4:c5:c6 s :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c2 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 *' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c3 :: 0':c:c1:s:c2:c3:c4:c5:c6 c4 :: 0':c:c1:s:c2:c3:c4:c5:c6 c5 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c6 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 SUM :: nil:cons -> c7:c8 nil :: nil:cons c7 :: c7:c8 cons :: 0':c:c1:s:c2:c3:c4:c5:c6 -> nil:cons -> nil:cons c8 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c7:c8 -> c7:c8 sum :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 PROD :: nil:cons -> c9:c10 c9 :: c9:c10 c10 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c9:c10 -> c9:c10 prod :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 hole_0':c:c1:s:c2:c3:c4:c5:c61_11 :: 0':c:c1:s:c2:c3:c4:c5:c6 hole_c7:c82_11 :: c7:c8 hole_nil:cons3_11 :: nil:cons hole_c9:c104_11 :: c9:c10 gen_0':c:c1:s:c2:c3:c4:c5:c65_11 :: Nat -> 0':c:c1:s:c2:c3:c4:c5:c6 gen_c7:c86_11 :: Nat -> c7:c8 gen_nil:cons7_11 :: Nat -> nil:cons gen_c9:c108_11 :: Nat -> c9:c10 Generator Equations: gen_0':c:c1:s:c2:c3:c4:c5:c65_11(0) <=> 0' gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(x, 1)) <=> s(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(x)) gen_c7:c86_11(0) <=> c7 gen_c7:c86_11(+(x, 1)) <=> c8(0', gen_c7:c86_11(x)) gen_nil:cons7_11(0) <=> nil gen_nil:cons7_11(+(x, 1)) <=> cons(0', gen_nil:cons7_11(x)) gen_c9:c108_11(0) <=> c9 gen_c9:c108_11(+(x, 1)) <=> c10(0', gen_c9:c108_11(x)) The following defined symbols remain to be analysed: +', *', SUM, sum, PROD, prod They will be analysed ascendingly in the following order: +' < *' +' < SUM +' < sum *' < PROD *' < prod sum < SUM prod < PROD ---------------------------------------- (12) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (13) BOUNDS(n^1, INF) ---------------------------------------- (14) Obligation: Innermost TRS: Rules: +'(z0, 0') -> c +'(0', z0) -> c1 +'(s(z0), s(z1)) -> c2(+'(z0, z1)) *'(z0, 0') -> c3 *'(0', z0) -> c4 *'(s(z0), s(z1)) -> c5(+'(*'(z0, z1), +'(z0, z1)), *'(z0, z1)) *'(s(z0), s(z1)) -> c6(+'(*'(z0, z1), +'(z0, z1)), +'(z0, z1)) SUM(nil) -> c7 SUM(cons(z0, z1)) -> c8(+'(z0, sum(z1)), SUM(z1)) PROD(nil) -> c9 PROD(cons(z0, z1)) -> c10(*'(z0, prod(z1)), PROD(z1)) +'(z0, 0') -> z0 +'(0', z0) -> z0 +'(s(z0), s(z1)) -> s(s(+'(z0, z1))) *'(z0, 0') -> 0' *'(0', z0) -> 0' *'(s(z0), s(z1)) -> s(+'(*'(z0, z1), +'(z0, z1))) sum(nil) -> 0' sum(cons(z0, z1)) -> +'(z0, sum(z1)) prod(nil) -> s(0') prod(cons(z0, z1)) -> *'(z0, prod(z1)) Types: +' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 0' :: 0':c:c1:s:c2:c3:c4:c5:c6 c :: 0':c:c1:s:c2:c3:c4:c5:c6 c1 :: 0':c:c1:s:c2:c3:c4:c5:c6 s :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c2 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 *' :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c3 :: 0':c:c1:s:c2:c3:c4:c5:c6 c4 :: 0':c:c1:s:c2:c3:c4:c5:c6 c5 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 c6 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 -> 0':c:c1:s:c2:c3:c4:c5:c6 SUM :: nil:cons -> c7:c8 nil :: nil:cons c7 :: c7:c8 cons :: 0':c:c1:s:c2:c3:c4:c5:c6 -> nil:cons -> nil:cons c8 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c7:c8 -> c7:c8 sum :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 PROD :: nil:cons -> c9:c10 c9 :: c9:c10 c10 :: 0':c:c1:s:c2:c3:c4:c5:c6 -> c9:c10 -> c9:c10 prod :: nil:cons -> 0':c:c1:s:c2:c3:c4:c5:c6 hole_0':c:c1:s:c2:c3:c4:c5:c61_11 :: 0':c:c1:s:c2:c3:c4:c5:c6 hole_c7:c82_11 :: c7:c8 hole_nil:cons3_11 :: nil:cons hole_c9:c104_11 :: c9:c10 gen_0':c:c1:s:c2:c3:c4:c5:c65_11 :: Nat -> 0':c:c1:s:c2:c3:c4:c5:c6 gen_c7:c86_11 :: Nat -> c7:c8 gen_nil:cons7_11 :: Nat -> nil:cons gen_c9:c108_11 :: Nat -> c9:c10 Lemmas: +'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n10_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n10_11))) -> *9_11, rt in Omega(n10_11) Generator Equations: gen_0':c:c1:s:c2:c3:c4:c5:c65_11(0) <=> 0' gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(x, 1)) <=> s(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(x)) gen_c7:c86_11(0) <=> c7 gen_c7:c86_11(+(x, 1)) <=> c8(0', gen_c7:c86_11(x)) gen_nil:cons7_11(0) <=> nil gen_nil:cons7_11(+(x, 1)) <=> cons(0', gen_nil:cons7_11(x)) gen_c9:c108_11(0) <=> c9 gen_c9:c108_11(+(x, 1)) <=> c10(0', gen_c9:c108_11(x)) The following defined symbols remain to be analysed: *', SUM, sum, PROD, prod They will be analysed ascendingly in the following order: *' < PROD *' < prod sum < SUM prod < PROD ---------------------------------------- (15) RewriteLemmaProof (FINISHED) Proved the following rewrite lemma: *'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11))) -> *9_11, rt in Omega(EXP) Induction Base: *'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, 0)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, 0))) Induction Step: *'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, +(n2980_11, 1))), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, +(n2980_11, 1)))) ->_R^Omega(1) c5(+'(*'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11))), +'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)))), *'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)))) ->_IH c5(+'(*9_11, +'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)))), *'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)))) ->_R^Omega(1) c5(+'(*9_11, c2(+'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(n2980_11), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(n2980_11)))), *'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(+(1, n2980_11)))) ->_IH c5(+'(*9_11, c2(+'(gen_0':c:c1:s:c2:c3:c4:c5:c65_11(n2980_11), gen_0':c:c1:s:c2:c3:c4:c5:c65_11(n2980_11)))), *9_11) We have rt in EXP and sz in O(n). Thus, we have irc_R in EXP ---------------------------------------- (16) BOUNDS(EXP, INF)