370.41/291.50 WORST_CASE(Omega(n^2), ?) 370.51/291.51 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 370.51/291.51 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 370.51/291.51 370.51/291.51 370.51/291.51 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 370.51/291.51 370.51/291.51 (0) CpxTRS 370.51/291.51 (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 370.51/291.51 (2) CpxTRS 370.51/291.51 (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 370.51/291.51 (4) typed CpxTrs 370.51/291.51 (5) OrderProof [LOWER BOUND(ID), 0 ms] 370.51/291.51 (6) typed CpxTrs 370.51/291.51 (7) RewriteLemmaProof [LOWER BOUND(ID), 334 ms] 370.51/291.51 (8) BEST 370.51/291.51 (9) proven lower bound 370.51/291.51 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 370.51/291.51 (11) BOUNDS(n^1, INF) 370.51/291.51 (12) typed CpxTrs 370.51/291.51 (13) RewriteLemmaProof [LOWER BOUND(ID), 4191 ms] 370.51/291.51 (14) BEST 370.51/291.51 (15) proven lower bound 370.51/291.51 (16) LowerBoundPropagationProof [FINISHED, 0 ms] 370.51/291.51 (17) BOUNDS(n^2, INF) 370.51/291.51 (18) typed CpxTrs 370.51/291.51 (19) RewriteLemmaProof [LOWER BOUND(ID), 27 ms] 370.51/291.51 (20) typed CpxTrs 370.51/291.51 (21) RewriteLemmaProof [LOWER BOUND(ID), 0 ms] 370.51/291.51 (22) typed CpxTrs 370.51/291.51 (23) RewriteLemmaProof [LOWER BOUND(ID), 396 ms] 370.51/291.51 (24) BOUNDS(1, INF) 370.51/291.51 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (0) 370.51/291.51 Obligation: 370.51/291.51 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 370.51/291.51 370.51/291.51 370.51/291.51 The TRS R consists of the following rules: 370.51/291.51 370.51/291.51 +(x, 0) -> x 370.51/291.51 +(0, x) -> x 370.51/291.51 +(s(x), s(y)) -> s(s(+(x, y))) 370.51/291.51 +(+(x, y), z) -> +(x, +(y, z)) 370.51/291.51 *(x, 0) -> 0 370.51/291.51 *(0, x) -> 0 370.51/291.51 *(s(x), s(y)) -> s(+(*(x, y), +(x, y))) 370.51/291.51 *(*(x, y), z) -> *(x, *(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0 370.51/291.51 sum(cons(x, l)) -> +(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0) 370.51/291.51 prod(cons(x, l)) -> *(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 S is empty. 370.51/291.51 Rewrite Strategy: FULL 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (1) RenamingProof (BOTH BOUNDS(ID, ID)) 370.51/291.51 Renamed function symbols to avoid clashes with predefined symbol. 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (2) 370.51/291.51 Obligation: 370.51/291.51 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 370.51/291.51 370.51/291.51 370.51/291.51 The TRS R consists of the following rules: 370.51/291.51 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 S is empty. 370.51/291.51 Rewrite Strategy: FULL 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 370.51/291.51 Infered types. 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (4) 370.51/291.51 Obligation: 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (5) OrderProof (LOWER BOUND(ID)) 370.51/291.51 Heuristically decided to analyse the following defined symbols: 370.51/291.51 +', *', app, sum, prod 370.51/291.51 370.51/291.51 They will be analysed ascendingly in the following order: 370.51/291.51 +' < *' 370.51/291.51 +' < sum 370.51/291.51 *' < prod 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (6) 370.51/291.51 Obligation: 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 +', *', app, sum, prod 370.51/291.51 370.51/291.51 They will be analysed ascendingly in the following order: 370.51/291.51 +' < *' 370.51/291.51 +' < sum 370.51/291.51 *' < prod 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (7) RewriteLemmaProof (LOWER BOUND(ID)) 370.51/291.51 Proved the following rewrite lemma: 370.51/291.51 +'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)) -> gen_0':s3_0(*(2, n6_0)), rt in Omega(1 + n6_0) 370.51/291.51 370.51/291.51 Induction Base: 370.51/291.51 +'(gen_0':s3_0(0), gen_0':s3_0(0)) ->_R^Omega(1) 370.51/291.51 gen_0':s3_0(0) 370.51/291.51 370.51/291.51 Induction Step: 370.51/291.51 +'(gen_0':s3_0(+(n6_0, 1)), gen_0':s3_0(+(n6_0, 1))) ->_R^Omega(1) 370.51/291.51 s(s(+'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)))) ->_IH 370.51/291.51 s(s(gen_0':s3_0(*(2, c7_0)))) 370.51/291.51 370.51/291.51 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (8) 370.51/291.51 Complex Obligation (BEST) 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (9) 370.51/291.51 Obligation: 370.51/291.51 Proved the lower bound n^1 for the following obligation: 370.51/291.51 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 +', *', app, sum, prod 370.51/291.51 370.51/291.51 They will be analysed ascendingly in the following order: 370.51/291.51 +' < *' 370.51/291.51 +' < sum 370.51/291.51 *' < prod 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (10) LowerBoundPropagationProof (FINISHED) 370.51/291.51 Propagated lower bound. 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (11) 370.51/291.51 BOUNDS(n^1, INF) 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (12) 370.51/291.51 Obligation: 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Lemmas: 370.51/291.51 +'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)) -> gen_0':s3_0(*(2, n6_0)), rt in Omega(1 + n6_0) 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 *', app, sum, prod 370.51/291.51 370.51/291.51 They will be analysed ascendingly in the following order: 370.51/291.51 *' < prod 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (13) RewriteLemmaProof (LOWER BOUND(ID)) 370.51/291.51 Proved the following rewrite lemma: 370.51/291.51 *'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)) -> *5_0, rt in Omega(n719_0 + n719_0^2) 370.51/291.51 370.51/291.51 Induction Base: 370.51/291.51 *'(gen_0':s3_0(0), gen_0':s3_0(0)) 370.51/291.51 370.51/291.51 Induction Step: 370.51/291.51 *'(gen_0':s3_0(+(n719_0, 1)), gen_0':s3_0(+(n719_0, 1))) ->_R^Omega(1) 370.51/291.51 s(+'(*'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)), +'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)))) ->_IH 370.51/291.51 s(+'(*5_0, +'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)))) ->_L^Omega(1 + n719_0) 370.51/291.51 s(+'(*5_0, gen_0':s3_0(*(2, n719_0)))) 370.51/291.51 370.51/291.51 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (14) 370.51/291.51 Complex Obligation (BEST) 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (15) 370.51/291.51 Obligation: 370.51/291.51 Proved the lower bound n^2 for the following obligation: 370.51/291.51 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Lemmas: 370.51/291.51 +'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)) -> gen_0':s3_0(*(2, n6_0)), rt in Omega(1 + n6_0) 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 *', app, sum, prod 370.51/291.51 370.51/291.51 They will be analysed ascendingly in the following order: 370.51/291.51 *' < prod 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (16) LowerBoundPropagationProof (FINISHED) 370.51/291.51 Propagated lower bound. 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (17) 370.51/291.51 BOUNDS(n^2, INF) 370.51/291.51 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (18) 370.51/291.51 Obligation: 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Lemmas: 370.51/291.51 +'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)) -> gen_0':s3_0(*(2, n6_0)), rt in Omega(1 + n6_0) 370.51/291.51 *'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)) -> *5_0, rt in Omega(n719_0 + n719_0^2) 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 app, sum, prod 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (19) RewriteLemmaProof (LOWER BOUND(ID)) 370.51/291.51 Proved the following rewrite lemma: 370.51/291.51 app(gen_nil:cons4_0(n13211_0), gen_nil:cons4_0(b)) -> gen_nil:cons4_0(+(n13211_0, b)), rt in Omega(1 + n13211_0) 370.51/291.51 370.51/291.51 Induction Base: 370.51/291.51 app(gen_nil:cons4_0(0), gen_nil:cons4_0(b)) ->_R^Omega(1) 370.51/291.51 gen_nil:cons4_0(b) 370.51/291.51 370.51/291.51 Induction Step: 370.51/291.51 app(gen_nil:cons4_0(+(n13211_0, 1)), gen_nil:cons4_0(b)) ->_R^Omega(1) 370.51/291.51 cons(0', app(gen_nil:cons4_0(n13211_0), gen_nil:cons4_0(b))) ->_IH 370.51/291.51 cons(0', gen_nil:cons4_0(+(b, c13212_0))) 370.51/291.51 370.51/291.51 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (20) 370.51/291.51 Obligation: 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Lemmas: 370.51/291.51 +'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)) -> gen_0':s3_0(*(2, n6_0)), rt in Omega(1 + n6_0) 370.51/291.51 *'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)) -> *5_0, rt in Omega(n719_0 + n719_0^2) 370.51/291.51 app(gen_nil:cons4_0(n13211_0), gen_nil:cons4_0(b)) -> gen_nil:cons4_0(+(n13211_0, b)), rt in Omega(1 + n13211_0) 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 sum, prod 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (21) RewriteLemmaProof (LOWER BOUND(ID)) 370.51/291.51 Proved the following rewrite lemma: 370.51/291.51 sum(gen_nil:cons4_0(n14223_0)) -> gen_0':s3_0(0), rt in Omega(1 + n14223_0) 370.51/291.51 370.51/291.51 Induction Base: 370.51/291.51 sum(gen_nil:cons4_0(0)) ->_R^Omega(1) 370.51/291.51 0' 370.51/291.51 370.51/291.51 Induction Step: 370.51/291.51 sum(gen_nil:cons4_0(+(n14223_0, 1))) ->_R^Omega(1) 370.51/291.51 +'(0', sum(gen_nil:cons4_0(n14223_0))) ->_IH 370.51/291.51 +'(0', gen_0':s3_0(0)) ->_L^Omega(1) 370.51/291.51 gen_0':s3_0(*(2, 0)) 370.51/291.51 370.51/291.51 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (22) 370.51/291.51 Obligation: 370.51/291.51 TRS: 370.51/291.51 Rules: 370.51/291.51 +'(x, 0') -> x 370.51/291.51 +'(0', x) -> x 370.51/291.51 +'(s(x), s(y)) -> s(s(+'(x, y))) 370.51/291.51 +'(+'(x, y), z) -> +'(x, +'(y, z)) 370.51/291.51 *'(x, 0') -> 0' 370.51/291.51 *'(0', x) -> 0' 370.51/291.51 *'(s(x), s(y)) -> s(+'(*'(x, y), +'(x, y))) 370.51/291.51 *'(*'(x, y), z) -> *'(x, *'(y, z)) 370.51/291.51 app(nil, l) -> l 370.51/291.51 app(cons(x, l1), l2) -> cons(x, app(l1, l2)) 370.51/291.51 sum(nil) -> 0' 370.51/291.51 sum(cons(x, l)) -> +'(x, sum(l)) 370.51/291.51 sum(app(l1, l2)) -> +'(sum(l1), sum(l2)) 370.51/291.51 prod(nil) -> s(0') 370.51/291.51 prod(cons(x, l)) -> *'(x, prod(l)) 370.51/291.51 prod(app(l1, l2)) -> *'(prod(l1), prod(l2)) 370.51/291.51 370.51/291.51 Types: 370.51/291.51 +' :: 0':s -> 0':s -> 0':s 370.51/291.51 0' :: 0':s 370.51/291.51 s :: 0':s -> 0':s 370.51/291.51 *' :: 0':s -> 0':s -> 0':s 370.51/291.51 app :: nil:cons -> nil:cons -> nil:cons 370.51/291.51 nil :: nil:cons 370.51/291.51 cons :: 0':s -> nil:cons -> nil:cons 370.51/291.51 sum :: nil:cons -> 0':s 370.51/291.51 prod :: nil:cons -> 0':s 370.51/291.51 hole_0':s1_0 :: 0':s 370.51/291.51 hole_nil:cons2_0 :: nil:cons 370.51/291.51 gen_0':s3_0 :: Nat -> 0':s 370.51/291.51 gen_nil:cons4_0 :: Nat -> nil:cons 370.51/291.51 370.51/291.51 370.51/291.51 Lemmas: 370.51/291.51 +'(gen_0':s3_0(n6_0), gen_0':s3_0(n6_0)) -> gen_0':s3_0(*(2, n6_0)), rt in Omega(1 + n6_0) 370.51/291.51 *'(gen_0':s3_0(n719_0), gen_0':s3_0(n719_0)) -> *5_0, rt in Omega(n719_0 + n719_0^2) 370.51/291.51 app(gen_nil:cons4_0(n13211_0), gen_nil:cons4_0(b)) -> gen_nil:cons4_0(+(n13211_0, b)), rt in Omega(1 + n13211_0) 370.51/291.51 sum(gen_nil:cons4_0(n14223_0)) -> gen_0':s3_0(0), rt in Omega(1 + n14223_0) 370.51/291.51 370.51/291.51 370.51/291.51 Generator Equations: 370.51/291.51 gen_0':s3_0(0) <=> 0' 370.51/291.51 gen_0':s3_0(+(x, 1)) <=> s(gen_0':s3_0(x)) 370.51/291.51 gen_nil:cons4_0(0) <=> nil 370.51/291.51 gen_nil:cons4_0(+(x, 1)) <=> cons(0', gen_nil:cons4_0(x)) 370.51/291.51 370.51/291.51 370.51/291.51 The following defined symbols remain to be analysed: 370.51/291.51 prod 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (23) RewriteLemmaProof (LOWER BOUND(ID)) 370.51/291.51 Proved the following rewrite lemma: 370.51/291.51 prod(gen_nil:cons4_0(n14816_0)) -> *5_0, rt in Omega(n14816_0) 370.51/291.51 370.51/291.51 Induction Base: 370.51/291.51 prod(gen_nil:cons4_0(0)) 370.51/291.51 370.51/291.51 Induction Step: 370.51/291.51 prod(gen_nil:cons4_0(+(n14816_0, 1))) ->_R^Omega(1) 370.51/291.51 *'(0', prod(gen_nil:cons4_0(n14816_0))) ->_IH 370.51/291.51 *'(0', *5_0) 370.51/291.51 370.51/291.51 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 370.51/291.51 ---------------------------------------- 370.51/291.51 370.51/291.51 (24) 370.51/291.51 BOUNDS(1, INF) 370.51/291.54 EOF