20.42/7.87 WORST_CASE(Omega(n^2), O(n^2)) 20.42/7.88 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 20.42/7.88 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 20.42/7.88 20.42/7.88 20.42/7.88 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, n^2). 20.42/7.88 20.42/7.88 (0) CpxTRS 20.42/7.88 (1) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 20.42/7.88 (2) CpxTRS 20.42/7.88 (3) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] 20.42/7.88 (4) CdtProblem 20.42/7.88 (5) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] 20.42/7.88 (6) CdtProblem 20.42/7.88 (7) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] 20.42/7.88 (8) CdtProblem 20.42/7.88 (9) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 41 ms] 20.42/7.88 (10) CdtProblem 20.42/7.88 (11) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 39 ms] 20.42/7.88 (12) CdtProblem 20.42/7.88 (13) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] 20.42/7.88 (14) BOUNDS(1, 1) 20.42/7.88 (15) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 20.42/7.88 (16) CpxTRS 20.42/7.88 (17) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 20.42/7.88 (18) typed CpxTrs 20.42/7.88 (19) OrderProof [LOWER BOUND(ID), 0 ms] 20.42/7.88 (20) typed CpxTrs 20.42/7.88 (21) RewriteLemmaProof [LOWER BOUND(ID), 292 ms] 20.42/7.88 (22) BEST 20.42/7.88 (23) proven lower bound 20.42/7.88 (24) LowerBoundPropagationProof [FINISHED, 0 ms] 20.42/7.88 (25) BOUNDS(n^1, INF) 20.42/7.88 (26) typed CpxTrs 20.42/7.88 (27) RewriteLemmaProof [LOWER BOUND(ID), 50 ms] 20.42/7.88 (28) proven lower bound 20.42/7.88 (29) LowerBoundPropagationProof [FINISHED, 0 ms] 20.42/7.88 (30) BOUNDS(n^2, INF) 20.42/7.88 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (0) 20.42/7.88 Obligation: 20.42/7.88 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, n^2). 20.42/7.88 20.42/7.88 20.42/7.88 The TRS R consists of the following rules: 20.42/7.88 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0) -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0) -> 0 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 S is empty. 20.42/7.88 Rewrite Strategy: FULL 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (1) RcToIrcProof (BOTH BOUNDS(ID, ID)) 20.42/7.88 Converted rc-obligation to irc-obligation. 20.42/7.88 20.42/7.88 The duplicating contexts are: 20.42/7.88 x([], s(M)) 20.42/7.88 20.42/7.88 20.42/7.88 The defined contexts are: 20.42/7.88 plus([], x1) 20.42/7.88 20.42/7.88 20.42/7.88 As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (2) 20.42/7.88 Obligation: 20.42/7.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2). 20.42/7.88 20.42/7.88 20.42/7.88 The TRS R consists of the following rules: 20.42/7.88 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0) -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0) -> 0 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 S is empty. 20.42/7.88 Rewrite Strategy: INNERMOST 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (3) CpxTrsToCdtProof (UPPER BOUND(ID)) 20.42/7.88 Converted Cpx (relative) TRS to CDT 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (4) 20.42/7.88 Obligation: 20.42/7.88 Complexity Dependency Tuples Problem 20.42/7.88 20.42/7.88 Rules: 20.42/7.88 and(tt, z0) -> activate(z0) 20.42/7.88 plus(z0, 0) -> z0 20.42/7.88 plus(z0, s(z1)) -> s(plus(z0, z1)) 20.42/7.88 x(z0, 0) -> 0 20.42/7.88 x(z0, s(z1)) -> plus(x(z0, z1), z0) 20.42/7.88 activate(z0) -> z0 20.42/7.88 Tuples: 20.42/7.88 AND(tt, z0) -> c(ACTIVATE(z0)) 20.42/7.88 PLUS(z0, 0) -> c1 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, 0) -> c3 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 ACTIVATE(z0) -> c5 20.42/7.88 S tuples: 20.42/7.88 AND(tt, z0) -> c(ACTIVATE(z0)) 20.42/7.88 PLUS(z0, 0) -> c1 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, 0) -> c3 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 ACTIVATE(z0) -> c5 20.42/7.88 K tuples:none 20.42/7.88 Defined Rule Symbols: and_2, plus_2, x_2, activate_1 20.42/7.88 20.42/7.88 Defined Pair Symbols: AND_2, PLUS_2, X_2, ACTIVATE_1 20.42/7.88 20.42/7.88 Compound Symbols: c_1, c1, c2_1, c3, c4_2, c5 20.42/7.88 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (5) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) 20.42/7.88 Removed 4 trailing nodes: 20.42/7.88 X(z0, 0) -> c3 20.42/7.88 ACTIVATE(z0) -> c5 20.42/7.88 PLUS(z0, 0) -> c1 20.42/7.88 AND(tt, z0) -> c(ACTIVATE(z0)) 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (6) 20.42/7.88 Obligation: 20.42/7.88 Complexity Dependency Tuples Problem 20.42/7.88 20.42/7.88 Rules: 20.42/7.88 and(tt, z0) -> activate(z0) 20.42/7.88 plus(z0, 0) -> z0 20.42/7.88 plus(z0, s(z1)) -> s(plus(z0, z1)) 20.42/7.88 x(z0, 0) -> 0 20.42/7.88 x(z0, s(z1)) -> plus(x(z0, z1), z0) 20.42/7.88 activate(z0) -> z0 20.42/7.88 Tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 S tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 K tuples:none 20.42/7.88 Defined Rule Symbols: and_2, plus_2, x_2, activate_1 20.42/7.88 20.42/7.88 Defined Pair Symbols: PLUS_2, X_2 20.42/7.88 20.42/7.88 Compound Symbols: c2_1, c4_2 20.42/7.88 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (7) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) 20.42/7.88 The following rules are not usable and were removed: 20.42/7.88 and(tt, z0) -> activate(z0) 20.42/7.88 activate(z0) -> z0 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (8) 20.42/7.88 Obligation: 20.42/7.88 Complexity Dependency Tuples Problem 20.42/7.88 20.42/7.88 Rules: 20.42/7.88 x(z0, 0) -> 0 20.42/7.88 x(z0, s(z1)) -> plus(x(z0, z1), z0) 20.42/7.88 plus(z0, 0) -> z0 20.42/7.88 plus(z0, s(z1)) -> s(plus(z0, z1)) 20.42/7.88 Tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 S tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 K tuples:none 20.42/7.88 Defined Rule Symbols: x_2, plus_2 20.42/7.88 20.42/7.88 Defined Pair Symbols: PLUS_2, X_2 20.42/7.88 20.42/7.88 Compound Symbols: c2_1, c4_2 20.42/7.88 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (9) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 20.42/7.88 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 We considered the (Usable) Rules:none 20.42/7.88 And the Tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 The order we found is given by the following interpretation: 20.42/7.88 20.42/7.88 Polynomial interpretation : 20.42/7.88 20.42/7.88 POL(0) = [1] 20.42/7.88 POL(PLUS(x_1, x_2)) = 0 20.42/7.88 POL(X(x_1, x_2)) = x_2 20.42/7.88 POL(c2(x_1)) = x_1 20.42/7.88 POL(c4(x_1, x_2)) = x_1 + x_2 20.42/7.88 POL(plus(x_1, x_2)) = [1] + x_1 + x_2 20.42/7.88 POL(s(x_1)) = [1] + x_1 20.42/7.88 POL(x(x_1, x_2)) = [1] + x_1 + x_2 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (10) 20.42/7.88 Obligation: 20.42/7.88 Complexity Dependency Tuples Problem 20.42/7.88 20.42/7.88 Rules: 20.42/7.88 x(z0, 0) -> 0 20.42/7.88 x(z0, s(z1)) -> plus(x(z0, z1), z0) 20.42/7.88 plus(z0, 0) -> z0 20.42/7.88 plus(z0, s(z1)) -> s(plus(z0, z1)) 20.42/7.88 Tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 S tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 K tuples: 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 Defined Rule Symbols: x_2, plus_2 20.42/7.88 20.42/7.88 Defined Pair Symbols: PLUS_2, X_2 20.42/7.88 20.42/7.88 Compound Symbols: c2_1, c4_2 20.42/7.88 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (11) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) 20.42/7.88 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 We considered the (Usable) Rules:none 20.42/7.88 And the Tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 The order we found is given by the following interpretation: 20.42/7.88 20.42/7.88 Polynomial interpretation : 20.42/7.88 20.42/7.88 POL(0) = 0 20.42/7.88 POL(PLUS(x_1, x_2)) = [2] + [2]x_2 20.42/7.88 POL(X(x_1, x_2)) = x_2^2 + [2]x_1*x_2 20.42/7.88 POL(c2(x_1)) = x_1 20.42/7.88 POL(c4(x_1, x_2)) = x_1 + x_2 20.42/7.88 POL(plus(x_1, x_2)) = [2] + x_2^2 20.42/7.88 POL(s(x_1)) = [2] + x_1 20.42/7.88 POL(x(x_1, x_2)) = x_1^2 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (12) 20.42/7.88 Obligation: 20.42/7.88 Complexity Dependency Tuples Problem 20.42/7.88 20.42/7.88 Rules: 20.42/7.88 x(z0, 0) -> 0 20.42/7.88 x(z0, s(z1)) -> plus(x(z0, z1), z0) 20.42/7.88 plus(z0, 0) -> z0 20.42/7.88 plus(z0, s(z1)) -> s(plus(z0, z1)) 20.42/7.88 Tuples: 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 S tuples:none 20.42/7.88 K tuples: 20.42/7.88 X(z0, s(z1)) -> c4(PLUS(x(z0, z1), z0), X(z0, z1)) 20.42/7.88 PLUS(z0, s(z1)) -> c2(PLUS(z0, z1)) 20.42/7.88 Defined Rule Symbols: x_2, plus_2 20.42/7.88 20.42/7.88 Defined Pair Symbols: PLUS_2, X_2 20.42/7.88 20.42/7.88 Compound Symbols: c2_1, c4_2 20.42/7.88 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (13) SIsEmptyProof (BOTH BOUNDS(ID, ID)) 20.42/7.88 The set S is empty 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (14) 20.42/7.88 BOUNDS(1, 1) 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (15) RenamingProof (BOTH BOUNDS(ID, ID)) 20.42/7.88 Renamed function symbols to avoid clashes with predefined symbol. 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (16) 20.42/7.88 Obligation: 20.42/7.88 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). 20.42/7.88 20.42/7.88 20.42/7.88 The TRS R consists of the following rules: 20.42/7.88 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0') -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0') -> 0' 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 S is empty. 20.42/7.88 Rewrite Strategy: FULL 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (17) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 20.42/7.88 Infered types. 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (18) 20.42/7.88 Obligation: 20.42/7.88 TRS: 20.42/7.88 Rules: 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0') -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0') -> 0' 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 Types: 20.42/7.88 and :: tt -> and:activate -> and:activate 20.42/7.88 tt :: tt 20.42/7.88 activate :: and:activate -> and:activate 20.42/7.88 plus :: 0':s -> 0':s -> 0':s 20.42/7.88 0' :: 0':s 20.42/7.88 s :: 0':s -> 0':s 20.42/7.88 x :: 0':s -> 0':s -> 0':s 20.42/7.88 hole_and:activate1_0 :: and:activate 20.42/7.88 hole_tt2_0 :: tt 20.42/7.88 hole_0':s3_0 :: 0':s 20.42/7.88 gen_0':s4_0 :: Nat -> 0':s 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (19) OrderProof (LOWER BOUND(ID)) 20.42/7.88 Heuristically decided to analyse the following defined symbols: 20.42/7.88 plus, x 20.42/7.88 20.42/7.88 They will be analysed ascendingly in the following order: 20.42/7.88 plus < x 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (20) 20.42/7.88 Obligation: 20.42/7.88 TRS: 20.42/7.88 Rules: 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0') -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0') -> 0' 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 Types: 20.42/7.88 and :: tt -> and:activate -> and:activate 20.42/7.88 tt :: tt 20.42/7.88 activate :: and:activate -> and:activate 20.42/7.88 plus :: 0':s -> 0':s -> 0':s 20.42/7.88 0' :: 0':s 20.42/7.88 s :: 0':s -> 0':s 20.42/7.88 x :: 0':s -> 0':s -> 0':s 20.42/7.88 hole_and:activate1_0 :: and:activate 20.42/7.88 hole_tt2_0 :: tt 20.42/7.88 hole_0':s3_0 :: 0':s 20.42/7.88 gen_0':s4_0 :: Nat -> 0':s 20.42/7.88 20.42/7.88 20.42/7.88 Generator Equations: 20.42/7.88 gen_0':s4_0(0) <=> 0' 20.42/7.88 gen_0':s4_0(+(x, 1)) <=> s(gen_0':s4_0(x)) 20.42/7.88 20.42/7.88 20.42/7.88 The following defined symbols remain to be analysed: 20.42/7.88 plus, x 20.42/7.88 20.42/7.88 They will be analysed ascendingly in the following order: 20.42/7.88 plus < x 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (21) RewriteLemmaProof (LOWER BOUND(ID)) 20.42/7.88 Proved the following rewrite lemma: 20.42/7.88 plus(gen_0':s4_0(a), gen_0':s4_0(n6_0)) -> gen_0':s4_0(+(n6_0, a)), rt in Omega(1 + n6_0) 20.42/7.88 20.42/7.88 Induction Base: 20.42/7.88 plus(gen_0':s4_0(a), gen_0':s4_0(0)) ->_R^Omega(1) 20.42/7.88 gen_0':s4_0(a) 20.42/7.88 20.42/7.88 Induction Step: 20.42/7.88 plus(gen_0':s4_0(a), gen_0':s4_0(+(n6_0, 1))) ->_R^Omega(1) 20.42/7.88 s(plus(gen_0':s4_0(a), gen_0':s4_0(n6_0))) ->_IH 20.42/7.88 s(gen_0':s4_0(+(a, c7_0))) 20.42/7.88 20.42/7.88 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (22) 20.42/7.88 Complex Obligation (BEST) 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (23) 20.42/7.88 Obligation: 20.42/7.88 Proved the lower bound n^1 for the following obligation: 20.42/7.88 20.42/7.88 TRS: 20.42/7.88 Rules: 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0') -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0') -> 0' 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 Types: 20.42/7.88 and :: tt -> and:activate -> and:activate 20.42/7.88 tt :: tt 20.42/7.88 activate :: and:activate -> and:activate 20.42/7.88 plus :: 0':s -> 0':s -> 0':s 20.42/7.88 0' :: 0':s 20.42/7.88 s :: 0':s -> 0':s 20.42/7.88 x :: 0':s -> 0':s -> 0':s 20.42/7.88 hole_and:activate1_0 :: and:activate 20.42/7.88 hole_tt2_0 :: tt 20.42/7.88 hole_0':s3_0 :: 0':s 20.42/7.88 gen_0':s4_0 :: Nat -> 0':s 20.42/7.88 20.42/7.88 20.42/7.88 Generator Equations: 20.42/7.88 gen_0':s4_0(0) <=> 0' 20.42/7.88 gen_0':s4_0(+(x, 1)) <=> s(gen_0':s4_0(x)) 20.42/7.88 20.42/7.88 20.42/7.88 The following defined symbols remain to be analysed: 20.42/7.88 plus, x 20.42/7.88 20.42/7.88 They will be analysed ascendingly in the following order: 20.42/7.88 plus < x 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (24) LowerBoundPropagationProof (FINISHED) 20.42/7.88 Propagated lower bound. 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (25) 20.42/7.88 BOUNDS(n^1, INF) 20.42/7.88 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (26) 20.42/7.88 Obligation: 20.42/7.88 TRS: 20.42/7.88 Rules: 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0') -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0') -> 0' 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 Types: 20.42/7.88 and :: tt -> and:activate -> and:activate 20.42/7.88 tt :: tt 20.42/7.88 activate :: and:activate -> and:activate 20.42/7.88 plus :: 0':s -> 0':s -> 0':s 20.42/7.88 0' :: 0':s 20.42/7.88 s :: 0':s -> 0':s 20.42/7.88 x :: 0':s -> 0':s -> 0':s 20.42/7.88 hole_and:activate1_0 :: and:activate 20.42/7.88 hole_tt2_0 :: tt 20.42/7.88 hole_0':s3_0 :: 0':s 20.42/7.88 gen_0':s4_0 :: Nat -> 0':s 20.42/7.88 20.42/7.88 20.42/7.88 Lemmas: 20.42/7.88 plus(gen_0':s4_0(a), gen_0':s4_0(n6_0)) -> gen_0':s4_0(+(n6_0, a)), rt in Omega(1 + n6_0) 20.42/7.88 20.42/7.88 20.42/7.88 Generator Equations: 20.42/7.88 gen_0':s4_0(0) <=> 0' 20.42/7.88 gen_0':s4_0(+(x, 1)) <=> s(gen_0':s4_0(x)) 20.42/7.88 20.42/7.88 20.42/7.88 The following defined symbols remain to be analysed: 20.42/7.88 x 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (27) RewriteLemmaProof (LOWER BOUND(ID)) 20.42/7.88 Proved the following rewrite lemma: 20.42/7.88 x(gen_0':s4_0(a), gen_0':s4_0(n441_0)) -> gen_0':s4_0(*(n441_0, a)), rt in Omega(1 + a*n441_0 + n441_0) 20.42/7.88 20.42/7.88 Induction Base: 20.42/7.88 x(gen_0':s4_0(a), gen_0':s4_0(0)) ->_R^Omega(1) 20.42/7.88 0' 20.42/7.88 20.42/7.88 Induction Step: 20.42/7.88 x(gen_0':s4_0(a), gen_0':s4_0(+(n441_0, 1))) ->_R^Omega(1) 20.42/7.88 plus(x(gen_0':s4_0(a), gen_0':s4_0(n441_0)), gen_0':s4_0(a)) ->_IH 20.42/7.88 plus(gen_0':s4_0(*(c442_0, a)), gen_0':s4_0(a)) ->_L^Omega(1 + a) 20.42/7.88 gen_0':s4_0(+(a, *(n441_0, a))) 20.42/7.88 20.42/7.88 We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). 20.42/7.88 ---------------------------------------- 20.42/7.88 20.42/7.88 (28) 20.42/7.88 Obligation: 20.42/7.88 Proved the lower bound n^2 for the following obligation: 20.42/7.88 20.42/7.88 TRS: 20.42/7.88 Rules: 20.42/7.88 and(tt, X) -> activate(X) 20.42/7.88 plus(N, 0') -> N 20.42/7.88 plus(N, s(M)) -> s(plus(N, M)) 20.42/7.88 x(N, 0') -> 0' 20.42/7.88 x(N, s(M)) -> plus(x(N, M), N) 20.42/7.88 activate(X) -> X 20.42/7.88 20.42/7.88 Types: 20.42/7.88 and :: tt -> and:activate -> and:activate 20.42/7.88 tt :: tt 20.42/7.88 activate :: and:activate -> and:activate 20.42/7.88 plus :: 0':s -> 0':s -> 0':s 20.42/7.88 0' :: 0':s 20.42/7.88 s :: 0':s -> 0':s 20.42/7.88 x :: 0':s -> 0':s -> 0':s 20.42/7.88 hole_and:activate1_0 :: and:activate 20.42/7.88 hole_tt2_0 :: tt 20.42/7.88 hole_0':s3_0 :: 0':s 20.42/7.88 gen_0':s4_0 :: Nat -> 0':s 20.42/7.88 20.42/7.88 20.42/7.88 Lemmas: 20.42/7.88 plus(gen_0':s4_0(a), gen_0':s4_0(n6_0)) -> gen_0':s4_0(+(n6_0, a)), rt in Omega(1 + n6_0) 20.42/7.88 20.42/7.88 20.42/7.88 Generator Equations: 20.42/7.88 gen_0':s4_0(0) <=> 0' 20.42/7.89 gen_0':s4_0(+(x, 1)) <=> s(gen_0':s4_0(x)) 20.42/7.89 20.42/7.89 20.42/7.89 The following defined symbols remain to be analysed: 20.42/7.89 x 20.42/7.89 ---------------------------------------- 20.42/7.89 20.42/7.89 (29) LowerBoundPropagationProof (FINISHED) 20.42/7.89 Propagated lower bound. 20.42/7.89 ---------------------------------------- 20.42/7.89 20.42/7.89 (30) 20.42/7.89 BOUNDS(n^2, INF) 20.56/7.92 EOF