1114.48/291.51 WORST_CASE(Omega(n^2), ?) 1115.16/291.75 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 1115.16/291.75 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 1115.16/291.75 1115.16/291.75 1115.16/291.75 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 1115.16/291.75 1115.16/291.75 (0) CpxTRS 1115.16/291.75 (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 1115.16/291.75 (2) CpxTRS 1115.16/291.75 (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 1115.16/291.75 (4) typed CpxTrs 1115.16/291.75 (5) OrderProof [LOWER BOUND(ID), 0 ms] 1115.16/291.75 (6) typed CpxTrs 1115.16/291.75 (7) RewriteLemmaProof [LOWER BOUND(ID), 620 ms] 1115.16/291.75 (8) BEST 1115.16/291.75 (9) proven lower bound 1115.16/291.75 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 1115.16/291.75 (11) BOUNDS(n^1, INF) 1115.16/291.75 (12) typed CpxTrs 1115.16/291.75 (13) RewriteLemmaProof [LOWER BOUND(ID), 120 ms] 1115.16/291.75 (14) BEST 1115.16/291.75 (15) proven lower bound 1115.16/291.75 (16) LowerBoundPropagationProof [FINISHED, 0 ms] 1115.16/291.75 (17) BOUNDS(n^2, INF) 1115.16/291.75 (18) typed CpxTrs 1115.16/291.75 (19) RewriteLemmaProof [LOWER BOUND(ID), 109 ms] 1115.16/291.75 (20) typed CpxTrs 1115.16/291.75 (21) RewriteLemmaProof [LOWER BOUND(ID), 70 ms] 1115.16/291.75 (22) typed CpxTrs 1115.16/291.75 (23) RewriteLemmaProof [LOWER BOUND(ID), 0 ms] 1115.16/291.75 (24) typed CpxTrs 1115.16/291.75 (25) RewriteLemmaProof [LOWER BOUND(ID), 128 ms] 1115.16/291.75 (26) typed CpxTrs 1115.16/291.75 (27) RewriteLemmaProof [LOWER BOUND(ID), 81 ms] 1115.16/291.75 (28) BOUNDS(1, INF) 1115.16/291.75 1115.16/291.75 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (0) 1115.16/291.75 Obligation: 1115.16/291.75 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 1115.16/291.75 1115.16/291.75 1115.16/291.75 The TRS R consists of the following rules: 1115.16/291.75 1115.16/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.16/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.16/291.75 a__plus(N, 0) -> mark(N) 1115.16/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.16/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.16/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.16/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.16/291.75 mark(tt) -> tt 1115.16/291.75 mark(s(X)) -> s(mark(X)) 1115.16/291.75 mark(0) -> 0 1115.16/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.16/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.16/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.16/291.75 1115.16/291.75 S is empty. 1115.16/291.75 Rewrite Strategy: FULL 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (1) RenamingProof (BOTH BOUNDS(ID, ID)) 1115.16/291.75 Renamed function symbols to avoid clashes with predefined symbol. 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (2) 1115.16/291.75 Obligation: 1115.16/291.75 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 1115.16/291.75 1115.16/291.75 1115.16/291.75 The TRS R consists of the following rules: 1115.16/291.75 1115.16/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.16/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.16/291.75 a__plus(N, 0') -> mark(N) 1115.16/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.16/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.16/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.16/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.16/291.75 mark(tt) -> tt 1115.16/291.75 mark(s(X)) -> s(mark(X)) 1115.16/291.75 mark(0') -> 0' 1115.16/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.16/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.16/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.16/291.75 1115.16/291.75 S is empty. 1115.16/291.75 Rewrite Strategy: FULL 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 1115.16/291.75 Infered types. 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (4) 1115.16/291.75 Obligation: 1115.16/291.75 TRS: 1115.16/291.75 Rules: 1115.16/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.16/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.16/291.75 a__plus(N, 0') -> mark(N) 1115.16/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.16/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.16/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.16/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.16/291.75 mark(tt) -> tt 1115.16/291.75 mark(s(X)) -> s(mark(X)) 1115.16/291.75 mark(0') -> 0' 1115.16/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.16/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.16/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.16/291.75 1115.16/291.75 Types: 1115.16/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 tt :: tt:s:0':U11:U12:plus 1115.16/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 0' :: tt:s:0':U11:U12:plus 1115.16/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.16/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.16/291.75 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (5) OrderProof (LOWER BOUND(ID)) 1115.16/291.75 Heuristically decided to analyse the following defined symbols: 1115.16/291.75 a__U11, a__U12, a__plus, mark 1115.16/291.75 1115.16/291.75 They will be analysed ascendingly in the following order: 1115.16/291.75 a__U11 = a__U12 1115.16/291.75 a__U11 = a__plus 1115.16/291.75 a__U11 = mark 1115.16/291.75 a__U12 = a__plus 1115.16/291.75 a__U12 = mark 1115.16/291.75 a__plus = mark 1115.16/291.75 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (6) 1115.16/291.75 Obligation: 1115.16/291.75 TRS: 1115.16/291.75 Rules: 1115.16/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.16/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.16/291.75 a__plus(N, 0') -> mark(N) 1115.16/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.16/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.16/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.16/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.16/291.75 mark(tt) -> tt 1115.16/291.75 mark(s(X)) -> s(mark(X)) 1115.16/291.75 mark(0') -> 0' 1115.16/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.16/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.16/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.16/291.75 1115.16/291.75 Types: 1115.16/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 tt :: tt:s:0':U11:U12:plus 1115.16/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 0' :: tt:s:0':U11:U12:plus 1115.16/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.16/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.16/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.16/291.75 1115.16/291.75 1115.16/291.75 Generator Equations: 1115.16/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.16/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.16/291.75 1115.16/291.75 1115.16/291.75 The following defined symbols remain to be analysed: 1115.16/291.75 a__U12, a__U11, a__plus, mark 1115.16/291.75 1115.16/291.75 They will be analysed ascendingly in the following order: 1115.16/291.75 a__U11 = a__U12 1115.16/291.75 a__U11 = a__plus 1115.16/291.75 a__U11 = mark 1115.16/291.75 a__U12 = a__plus 1115.16/291.75 a__U12 = mark 1115.16/291.75 a__plus = mark 1115.16/291.75 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (7) RewriteLemmaProof (LOWER BOUND(ID)) 1115.16/291.75 Proved the following rewrite lemma: 1115.16/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0)) -> gen_tt:s:0':U11:U12:plus2_0(n7802_0), rt in Omega(1 + n7802_0) 1115.16/291.75 1115.16/291.75 Induction Base: 1115.16/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(0)) ->_R^Omega(1) 1115.16/291.75 tt 1115.16/291.75 1115.16/291.75 Induction Step: 1115.16/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(+(n7802_0, 1))) ->_R^Omega(1) 1115.16/291.75 s(mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0))) ->_IH 1115.16/291.75 s(gen_tt:s:0':U11:U12:plus2_0(c7803_0)) 1115.16/291.75 1115.16/291.75 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 1115.16/291.75 ---------------------------------------- 1115.16/291.75 1115.16/291.75 (8) 1115.16/291.75 Complex Obligation (BEST) 1115.16/291.75 1115.16/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (9) 1115.51/291.75 Obligation: 1115.51/291.75 Proved the lower bound n^1 for the following obligation: 1115.51/291.75 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 mark, a__U11 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (10) LowerBoundPropagationProof (FINISHED) 1115.51/291.75 Propagated lower bound. 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (11) 1115.51/291.75 BOUNDS(n^1, INF) 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (12) 1115.51/291.75 Obligation: 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0)) -> gen_tt:s:0':U11:U12:plus2_0(n7802_0), rt in Omega(1 + n7802_0) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 a__U11, a__U12, a__plus 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (13) RewriteLemmaProof (LOWER BOUND(ID)) 1115.51/291.75 Proved the following rewrite lemma: 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n8498_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n8498_0 + n8498_0 + n8498_0^2) 1115.51/291.75 1115.51/291.75 Induction Base: 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(c)) 1115.51/291.75 1115.51/291.75 Induction Step: 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(+(n8498_0, 1)), gen_tt:s:0':U11:U12:plus2_0(c)) ->_R^Omega(1) 1115.51/291.75 a__U12(tt, gen_tt:s:0':U11:U12:plus2_0(+(n8498_0, 1)), gen_tt:s:0':U11:U12:plus2_0(c)) ->_R^Omega(1) 1115.51/291.75 s(a__plus(mark(gen_tt:s:0':U11:U12:plus2_0(c)), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n8498_0))))) ->_L^Omega(1 + c) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n8498_0))))) ->_L^Omega(2 + n8498_0) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), gen_tt:s:0':U11:U12:plus2_0(+(1, n8498_0)))) ->_R^Omega(1) 1115.51/291.75 s(a__U11(tt, gen_tt:s:0':U11:U12:plus2_0(n8498_0), gen_tt:s:0':U11:U12:plus2_0(c))) ->_IH 1115.51/291.75 s(*3_0) 1115.51/291.75 1115.51/291.75 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (14) 1115.51/291.75 Complex Obligation (BEST) 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (15) 1115.51/291.75 Obligation: 1115.51/291.75 Proved the lower bound n^2 for the following obligation: 1115.51/291.75 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0)) -> gen_tt:s:0':U11:U12:plus2_0(n7802_0), rt in Omega(1 + n7802_0) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 a__U11, a__U12, a__plus 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (16) LowerBoundPropagationProof (FINISHED) 1115.51/291.75 Propagated lower bound. 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (17) 1115.51/291.75 BOUNDS(n^2, INF) 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (18) 1115.51/291.75 Obligation: 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0)) -> gen_tt:s:0':U11:U12:plus2_0(n7802_0), rt in Omega(1 + n7802_0) 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n8498_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n8498_0 + n8498_0 + n8498_0^2) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 a__U12, a__plus, mark 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (19) RewriteLemmaProof (LOWER BOUND(ID)) 1115.51/291.75 Proved the following rewrite lemma: 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n10562_0 + n10562_0 + n10562_0^2) 1115.51/291.75 1115.51/291.75 Induction Base: 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(c)) 1115.51/291.75 1115.51/291.75 Induction Step: 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(+(n10562_0, 1)), gen_tt:s:0':U11:U12:plus2_0(c)) ->_R^Omega(1) 1115.51/291.75 s(a__plus(mark(gen_tt:s:0':U11:U12:plus2_0(c)), mark(gen_tt:s:0':U11:U12:plus2_0(+(n10562_0, 1))))) ->_L^Omega(1 + c) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n10562_0))))) ->_L^Omega(2 + n10562_0) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), gen_tt:s:0':U11:U12:plus2_0(+(1, n10562_0)))) ->_R^Omega(1) 1115.51/291.75 s(a__U11(tt, gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c))) ->_R^Omega(1) 1115.51/291.75 s(a__U12(tt, gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c))) ->_IH 1115.51/291.75 s(*3_0) 1115.51/291.75 1115.51/291.75 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (20) 1115.51/291.75 Obligation: 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0)) -> gen_tt:s:0':U11:U12:plus2_0(n7802_0), rt in Omega(1 + n7802_0) 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n8498_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n8498_0 + n8498_0 + n8498_0^2) 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n10562_0 + n10562_0 + n10562_0^2) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 a__plus, a__U11, mark 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (21) RewriteLemmaProof (LOWER BOUND(ID)) 1115.51/291.75 Proved the following rewrite lemma: 1115.51/291.75 a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0))) -> *3_0, rt in Omega(a*n12888_0 + n12888_0 + n12888_0^2) 1115.51/291.75 1115.51/291.75 Induction Base: 1115.51/291.75 a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, 0))) 1115.51/291.75 1115.51/291.75 Induction Step: 1115.51/291.75 a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, +(n12888_0, 1)))) ->_R^Omega(1) 1115.51/291.75 a__U11(tt, gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0)), gen_tt:s:0':U11:U12:plus2_0(a)) ->_R^Omega(1) 1115.51/291.75 a__U12(tt, gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0)), gen_tt:s:0':U11:U12:plus2_0(a)) ->_R^Omega(1) 1115.51/291.75 s(a__plus(mark(gen_tt:s:0':U11:U12:plus2_0(a)), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0))))) ->_L^Omega(1 + a) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(a), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0))))) ->_L^Omega(2 + n12888_0) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0)))) ->_IH 1115.51/291.75 s(*3_0) 1115.51/291.75 1115.51/291.75 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (22) 1115.51/291.75 Obligation: 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n7802_0)) -> gen_tt:s:0':U11:U12:plus2_0(n7802_0), rt in Omega(1 + n7802_0) 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n8498_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n8498_0 + n8498_0 + n8498_0^2) 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n10562_0 + n10562_0 + n10562_0^2) 1115.51/291.75 a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0))) -> *3_0, rt in Omega(a*n12888_0 + n12888_0 + n12888_0^2) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 mark, a__U11, a__U12 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (23) RewriteLemmaProof (LOWER BOUND(ID)) 1115.51/291.75 Proved the following rewrite lemma: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n15871_0)) -> gen_tt:s:0':U11:U12:plus2_0(n15871_0), rt in Omega(1 + n15871_0) 1115.51/291.75 1115.51/291.75 Induction Base: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(0)) ->_R^Omega(1) 1115.51/291.75 tt 1115.51/291.75 1115.51/291.75 Induction Step: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(+(n15871_0, 1))) ->_R^Omega(1) 1115.51/291.75 s(mark(gen_tt:s:0':U11:U12:plus2_0(n15871_0))) ->_IH 1115.51/291.75 s(gen_tt:s:0':U11:U12:plus2_0(c15872_0)) 1115.51/291.75 1115.51/291.75 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (24) 1115.51/291.75 Obligation: 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n15871_0)) -> gen_tt:s:0':U11:U12:plus2_0(n15871_0), rt in Omega(1 + n15871_0) 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n8498_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n8498_0 + n8498_0 + n8498_0^2) 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n10562_0 + n10562_0 + n10562_0^2) 1115.51/291.75 a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0))) -> *3_0, rt in Omega(a*n12888_0 + n12888_0 + n12888_0^2) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 a__U11, a__U12 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (25) RewriteLemmaProof (LOWER BOUND(ID)) 1115.51/291.75 Proved the following rewrite lemma: 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n16876_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n16876_0 + n16876_0 + n16876_0^2) 1115.51/291.75 1115.51/291.75 Induction Base: 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(c)) 1115.51/291.75 1115.51/291.75 Induction Step: 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(+(n16876_0, 1)), gen_tt:s:0':U11:U12:plus2_0(c)) ->_R^Omega(1) 1115.51/291.75 a__U12(tt, gen_tt:s:0':U11:U12:plus2_0(+(n16876_0, 1)), gen_tt:s:0':U11:U12:plus2_0(c)) ->_R^Omega(1) 1115.51/291.75 s(a__plus(mark(gen_tt:s:0':U11:U12:plus2_0(c)), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n16876_0))))) ->_L^Omega(1 + c) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n16876_0))))) ->_L^Omega(2 + n16876_0) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), gen_tt:s:0':U11:U12:plus2_0(+(1, n16876_0)))) ->_R^Omega(1) 1115.51/291.75 s(a__U11(tt, gen_tt:s:0':U11:U12:plus2_0(n16876_0), gen_tt:s:0':U11:U12:plus2_0(c))) ->_IH 1115.51/291.75 s(*3_0) 1115.51/291.75 1115.51/291.75 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (26) 1115.51/291.75 Obligation: 1115.51/291.75 TRS: 1115.51/291.75 Rules: 1115.51/291.75 a__U11(tt, M, N) -> a__U12(tt, M, N) 1115.51/291.75 a__U12(tt, M, N) -> s(a__plus(mark(N), mark(M))) 1115.51/291.75 a__plus(N, 0') -> mark(N) 1115.51/291.75 a__plus(N, s(M)) -> a__U11(tt, M, N) 1115.51/291.75 mark(U11(X1, X2, X3)) -> a__U11(mark(X1), X2, X3) 1115.51/291.75 mark(U12(X1, X2, X3)) -> a__U12(mark(X1), X2, X3) 1115.51/291.75 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 1115.51/291.75 mark(tt) -> tt 1115.51/291.75 mark(s(X)) -> s(mark(X)) 1115.51/291.75 mark(0') -> 0' 1115.51/291.75 a__U11(X1, X2, X3) -> U11(X1, X2, X3) 1115.51/291.75 a__U12(X1, X2, X3) -> U12(X1, X2, X3) 1115.51/291.75 a__plus(X1, X2) -> plus(X1, X2) 1115.51/291.75 1115.51/291.75 Types: 1115.51/291.75 a__U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 tt :: tt:s:0':U11:U12:plus 1115.51/291.75 a__U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 s :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 a__plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 mark :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 0' :: tt:s:0':U11:U12:plus 1115.51/291.75 U11 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 U12 :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 plus :: tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus -> tt:s:0':U11:U12:plus 1115.51/291.75 hole_tt:s:0':U11:U12:plus1_0 :: tt:s:0':U11:U12:plus 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0 :: Nat -> tt:s:0':U11:U12:plus 1115.51/291.75 1115.51/291.75 1115.51/291.75 Lemmas: 1115.51/291.75 mark(gen_tt:s:0':U11:U12:plus2_0(n15871_0)) -> gen_tt:s:0':U11:U12:plus2_0(n15871_0), rt in Omega(1 + n15871_0) 1115.51/291.75 a__U11(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n16876_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n16876_0 + n16876_0 + n16876_0^2) 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n10562_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n10562_0 + n10562_0 + n10562_0^2) 1115.51/291.75 a__plus(gen_tt:s:0':U11:U12:plus2_0(a), gen_tt:s:0':U11:U12:plus2_0(+(1, n12888_0))) -> *3_0, rt in Omega(a*n12888_0 + n12888_0 + n12888_0^2) 1115.51/291.75 1115.51/291.75 1115.51/291.75 Generator Equations: 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(0) <=> tt 1115.51/291.75 gen_tt:s:0':U11:U12:plus2_0(+(x, 1)) <=> s(gen_tt:s:0':U11:U12:plus2_0(x)) 1115.51/291.75 1115.51/291.75 1115.51/291.75 The following defined symbols remain to be analysed: 1115.51/291.75 a__U12 1115.51/291.75 1115.51/291.75 They will be analysed ascendingly in the following order: 1115.51/291.75 a__U11 = a__U12 1115.51/291.75 a__U11 = a__plus 1115.51/291.75 a__U11 = mark 1115.51/291.75 a__U12 = a__plus 1115.51/291.75 a__U12 = mark 1115.51/291.75 a__plus = mark 1115.51/291.75 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (27) RewriteLemmaProof (LOWER BOUND(ID)) 1115.51/291.75 Proved the following rewrite lemma: 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(n20155_0), gen_tt:s:0':U11:U12:plus2_0(c)) -> *3_0, rt in Omega(c*n20155_0 + n20155_0 + n20155_0^2) 1115.51/291.75 1115.51/291.75 Induction Base: 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(c)) 1115.51/291.75 1115.51/291.75 Induction Step: 1115.51/291.75 a__U12(gen_tt:s:0':U11:U12:plus2_0(0), gen_tt:s:0':U11:U12:plus2_0(+(n20155_0, 1)), gen_tt:s:0':U11:U12:plus2_0(c)) ->_R^Omega(1) 1115.51/291.75 s(a__plus(mark(gen_tt:s:0':U11:U12:plus2_0(c)), mark(gen_tt:s:0':U11:U12:plus2_0(+(n20155_0, 1))))) ->_L^Omega(1 + c) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), mark(gen_tt:s:0':U11:U12:plus2_0(+(1, n20155_0))))) ->_L^Omega(2 + n20155_0) 1115.51/291.75 s(a__plus(gen_tt:s:0':U11:U12:plus2_0(c), gen_tt:s:0':U11:U12:plus2_0(+(1, n20155_0)))) ->_R^Omega(1) 1115.51/291.75 s(a__U11(tt, gen_tt:s:0':U11:U12:plus2_0(n20155_0), gen_tt:s:0':U11:U12:plus2_0(c))) ->_R^Omega(1) 1115.51/291.75 s(a__U12(tt, gen_tt:s:0':U11:U12:plus2_0(n20155_0), gen_tt:s:0':U11:U12:plus2_0(c))) ->_IH 1115.51/291.75 s(*3_0) 1115.51/291.75 1115.51/291.75 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 1115.51/291.75 ---------------------------------------- 1115.51/291.75 1115.51/291.75 (28) 1115.51/291.75 BOUNDS(1, INF) 1115.78/291.88 EOF