14.67/4.78 WORST_CASE(Omega(n^1), O(n^1)) 15.05/4.79 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 15.05/4.79 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 15.05/4.79 15.05/4.79 15.05/4.79 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.05/4.79 15.05/4.79 (0) CpxTRS 15.05/4.79 (1) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] 15.05/4.79 (2) CdtProblem 15.05/4.79 (3) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] 15.05/4.79 (4) CdtProblem 15.05/4.79 (5) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] 15.05/4.79 (6) CdtProblem 15.05/4.79 (7) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 94 ms] 15.05/4.79 (8) CdtProblem 15.05/4.79 (9) CdtKnowledgeProof [FINISHED, 0 ms] 15.05/4.79 (10) BOUNDS(1, 1) 15.05/4.79 (11) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 15.05/4.79 (12) TRS for Loop Detection 15.05/4.79 (13) DecreasingLoopProof [LOWER BOUND(ID), 45 ms] 15.05/4.79 (14) BEST 15.05/4.79 (15) proven lower bound 15.05/4.79 (16) LowerBoundPropagationProof [FINISHED, 0 ms] 15.05/4.79 (17) BOUNDS(n^1, INF) 15.05/4.79 (18) TRS for Loop Detection 15.05/4.79 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (0) 15.05/4.79 Obligation: 15.05/4.79 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.05/4.79 15.05/4.79 15.05/4.79 The TRS R consists of the following rules: 15.05/4.79 15.05/4.79 fst(0, Z) -> nil 15.05/4.79 fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) 15.05/4.79 from(X) -> cons(X, n__from(s(X))) 15.05/4.79 add(0, X) -> X 15.05/4.79 add(s(X), Y) -> s(n__add(activate(X), Y)) 15.05/4.79 len(nil) -> 0 15.05/4.79 len(cons(X, Z)) -> s(n__len(activate(Z))) 15.05/4.79 fst(X1, X2) -> n__fst(X1, X2) 15.05/4.79 from(X) -> n__from(X) 15.05/4.79 add(X1, X2) -> n__add(X1, X2) 15.05/4.79 len(X) -> n__len(X) 15.05/4.79 activate(n__fst(X1, X2)) -> fst(X1, X2) 15.05/4.79 activate(n__from(X)) -> from(X) 15.05/4.79 activate(n__add(X1, X2)) -> add(X1, X2) 15.05/4.79 activate(n__len(X)) -> len(X) 15.05/4.79 activate(X) -> X 15.05/4.79 15.05/4.79 S is empty. 15.05/4.79 Rewrite Strategy: INNERMOST 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (1) CpxTrsToCdtProof (UPPER BOUND(ID)) 15.05/4.79 Converted Cpx (relative) TRS to CDT 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (2) 15.05/4.79 Obligation: 15.05/4.79 Complexity Dependency Tuples Problem 15.05/4.79 15.05/4.79 Rules: 15.05/4.79 fst(0, z0) -> nil 15.05/4.79 fst(s(z0), cons(z1, z2)) -> cons(z1, n__fst(activate(z0), activate(z2))) 15.05/4.79 fst(z0, z1) -> n__fst(z0, z1) 15.05/4.79 from(z0) -> cons(z0, n__from(s(z0))) 15.05/4.79 from(z0) -> n__from(z0) 15.05/4.79 add(0, z0) -> z0 15.05/4.79 add(s(z0), z1) -> s(n__add(activate(z0), z1)) 15.05/4.79 add(z0, z1) -> n__add(z0, z1) 15.05/4.79 len(nil) -> 0 15.05/4.79 len(cons(z0, z1)) -> s(n__len(activate(z1))) 15.05/4.79 len(z0) -> n__len(z0) 15.05/4.79 activate(n__fst(z0, z1)) -> fst(z0, z1) 15.05/4.79 activate(n__from(z0)) -> from(z0) 15.05/4.79 activate(n__add(z0, z1)) -> add(z0, z1) 15.05/4.79 activate(n__len(z0)) -> len(z0) 15.05/4.79 activate(z0) -> z0 15.05/4.79 Tuples: 15.05/4.79 FST(0, z0) -> c 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 FST(z0, z1) -> c2 15.05/4.79 FROM(z0) -> c3 15.05/4.79 FROM(z0) -> c4 15.05/4.79 ADD(0, z0) -> c5 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 ADD(z0, z1) -> c7 15.05/4.79 LEN(nil) -> c8 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 LEN(z0) -> c10 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__from(z0)) -> c12(FROM(z0)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 ACTIVATE(z0) -> c15 15.05/4.79 S tuples: 15.05/4.79 FST(0, z0) -> c 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 FST(z0, z1) -> c2 15.05/4.79 FROM(z0) -> c3 15.05/4.79 FROM(z0) -> c4 15.05/4.79 ADD(0, z0) -> c5 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 ADD(z0, z1) -> c7 15.05/4.79 LEN(nil) -> c8 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 LEN(z0) -> c10 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__from(z0)) -> c12(FROM(z0)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 ACTIVATE(z0) -> c15 15.05/4.79 K tuples:none 15.05/4.79 Defined Rule Symbols: fst_2, from_1, add_2, len_1, activate_1 15.05/4.79 15.05/4.79 Defined Pair Symbols: FST_2, FROM_1, ADD_2, LEN_1, ACTIVATE_1 15.05/4.79 15.05/4.79 Compound Symbols: c, c1_2, c2, c3, c4, c5, c6_1, c7, c8, c9_1, c10, c11_1, c12_1, c13_1, c14_1, c15 15.05/4.79 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) 15.05/4.79 Removed 10 trailing nodes: 15.05/4.79 LEN(nil) -> c8 15.05/4.79 ADD(z0, z1) -> c7 15.05/4.79 ADD(0, z0) -> c5 15.05/4.79 ACTIVATE(z0) -> c15 15.05/4.79 FST(0, z0) -> c 15.05/4.79 FROM(z0) -> c4 15.05/4.79 LEN(z0) -> c10 15.05/4.79 ACTIVATE(n__from(z0)) -> c12(FROM(z0)) 15.05/4.79 FROM(z0) -> c3 15.05/4.79 FST(z0, z1) -> c2 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (4) 15.05/4.79 Obligation: 15.05/4.79 Complexity Dependency Tuples Problem 15.05/4.79 15.05/4.79 Rules: 15.05/4.79 fst(0, z0) -> nil 15.05/4.79 fst(s(z0), cons(z1, z2)) -> cons(z1, n__fst(activate(z0), activate(z2))) 15.05/4.79 fst(z0, z1) -> n__fst(z0, z1) 15.05/4.79 from(z0) -> cons(z0, n__from(s(z0))) 15.05/4.79 from(z0) -> n__from(z0) 15.05/4.79 add(0, z0) -> z0 15.05/4.79 add(s(z0), z1) -> s(n__add(activate(z0), z1)) 15.05/4.79 add(z0, z1) -> n__add(z0, z1) 15.05/4.79 len(nil) -> 0 15.05/4.79 len(cons(z0, z1)) -> s(n__len(activate(z1))) 15.05/4.79 len(z0) -> n__len(z0) 15.05/4.79 activate(n__fst(z0, z1)) -> fst(z0, z1) 15.05/4.79 activate(n__from(z0)) -> from(z0) 15.05/4.79 activate(n__add(z0, z1)) -> add(z0, z1) 15.05/4.79 activate(n__len(z0)) -> len(z0) 15.05/4.79 activate(z0) -> z0 15.05/4.79 Tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 S tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 K tuples:none 15.05/4.79 Defined Rule Symbols: fst_2, from_1, add_2, len_1, activate_1 15.05/4.79 15.05/4.79 Defined Pair Symbols: FST_2, ADD_2, LEN_1, ACTIVATE_1 15.05/4.79 15.05/4.79 Compound Symbols: c1_2, c6_1, c9_1, c11_1, c13_1, c14_1 15.05/4.79 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (5) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) 15.05/4.79 The following rules are not usable and were removed: 15.05/4.79 fst(0, z0) -> nil 15.05/4.79 fst(s(z0), cons(z1, z2)) -> cons(z1, n__fst(activate(z0), activate(z2))) 15.05/4.79 fst(z0, z1) -> n__fst(z0, z1) 15.05/4.79 from(z0) -> cons(z0, n__from(s(z0))) 15.05/4.79 from(z0) -> n__from(z0) 15.05/4.79 add(0, z0) -> z0 15.05/4.79 add(s(z0), z1) -> s(n__add(activate(z0), z1)) 15.05/4.79 add(z0, z1) -> n__add(z0, z1) 15.05/4.79 len(nil) -> 0 15.05/4.79 len(cons(z0, z1)) -> s(n__len(activate(z1))) 15.05/4.79 len(z0) -> n__len(z0) 15.05/4.79 activate(n__fst(z0, z1)) -> fst(z0, z1) 15.05/4.79 activate(n__from(z0)) -> from(z0) 15.05/4.79 activate(n__add(z0, z1)) -> add(z0, z1) 15.05/4.79 activate(n__len(z0)) -> len(z0) 15.05/4.79 activate(z0) -> z0 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (6) 15.05/4.79 Obligation: 15.05/4.79 Complexity Dependency Tuples Problem 15.05/4.79 15.05/4.79 Rules:none 15.05/4.79 Tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 S tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 K tuples:none 15.05/4.79 Defined Rule Symbols:none 15.05/4.79 15.05/4.79 Defined Pair Symbols: FST_2, ADD_2, LEN_1, ACTIVATE_1 15.05/4.79 15.05/4.79 Compound Symbols: c1_2, c6_1, c9_1, c11_1, c13_1, c14_1 15.05/4.79 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (7) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 15.05/4.79 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 We considered the (Usable) Rules:none 15.05/4.79 And the Tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 The order we found is given by the following interpretation: 15.05/4.79 15.05/4.79 Polynomial interpretation : 15.05/4.79 15.05/4.79 POL(ACTIVATE(x_1)) = [1] + x_1 15.05/4.79 POL(ADD(x_1, x_2)) = [1] + x_1 + x_2 15.05/4.79 POL(FST(x_1, x_2)) = x_1 + x_2 15.05/4.79 POL(LEN(x_1)) = [1] + x_1 15.05/4.79 POL(c1(x_1, x_2)) = x_1 + x_2 15.05/4.79 POL(c11(x_1)) = x_1 15.05/4.79 POL(c13(x_1)) = x_1 15.05/4.79 POL(c14(x_1)) = x_1 15.05/4.79 POL(c6(x_1)) = x_1 15.05/4.79 POL(c9(x_1)) = x_1 15.05/4.79 POL(cons(x_1, x_2)) = [1] + x_2 15.05/4.79 POL(n__add(x_1, x_2)) = [1] + x_1 + x_2 15.05/4.79 POL(n__fst(x_1, x_2)) = [1] + x_1 + x_2 15.05/4.79 POL(n__len(x_1)) = [1] + x_1 15.05/4.79 POL(s(x_1)) = [1] + x_1 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (8) 15.05/4.79 Obligation: 15.05/4.79 Complexity Dependency Tuples Problem 15.05/4.79 15.05/4.79 Rules:none 15.05/4.79 Tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 S tuples: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 K tuples: 15.05/4.79 ADD(s(z0), z1) -> c6(ACTIVATE(z0)) 15.05/4.79 LEN(cons(z0, z1)) -> c9(ACTIVATE(z1)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 Defined Rule Symbols:none 15.05/4.79 15.05/4.79 Defined Pair Symbols: FST_2, ADD_2, LEN_1, ACTIVATE_1 15.05/4.79 15.05/4.79 Compound Symbols: c1_2, c6_1, c9_1, c11_1, c13_1, c14_1 15.05/4.79 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (9) CdtKnowledgeProof (FINISHED) 15.05/4.79 The following tuples could be moved from S to K by knowledge propagation: 15.05/4.79 FST(s(z0), cons(z1, z2)) -> c1(ACTIVATE(z0), ACTIVATE(z2)) 15.05/4.79 ACTIVATE(n__fst(z0, z1)) -> c11(FST(z0, z1)) 15.05/4.79 ACTIVATE(n__add(z0, z1)) -> c13(ADD(z0, z1)) 15.05/4.79 ACTIVATE(n__len(z0)) -> c14(LEN(z0)) 15.05/4.79 Now S is empty 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (10) 15.05/4.79 BOUNDS(1, 1) 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (11) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 15.05/4.79 Transformed a relative TRS into a decreasing-loop problem. 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (12) 15.05/4.79 Obligation: 15.05/4.79 Analyzing the following TRS for decreasing loops: 15.05/4.79 15.05/4.79 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.05/4.79 15.05/4.79 15.05/4.79 The TRS R consists of the following rules: 15.05/4.79 15.05/4.79 fst(0, Z) -> nil 15.05/4.79 fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) 15.05/4.79 from(X) -> cons(X, n__from(s(X))) 15.05/4.79 add(0, X) -> X 15.05/4.79 add(s(X), Y) -> s(n__add(activate(X), Y)) 15.05/4.79 len(nil) -> 0 15.05/4.79 len(cons(X, Z)) -> s(n__len(activate(Z))) 15.05/4.79 fst(X1, X2) -> n__fst(X1, X2) 15.05/4.79 from(X) -> n__from(X) 15.05/4.79 add(X1, X2) -> n__add(X1, X2) 15.05/4.79 len(X) -> n__len(X) 15.05/4.79 activate(n__fst(X1, X2)) -> fst(X1, X2) 15.05/4.79 activate(n__from(X)) -> from(X) 15.05/4.79 activate(n__add(X1, X2)) -> add(X1, X2) 15.05/4.79 activate(n__len(X)) -> len(X) 15.05/4.79 activate(X) -> X 15.05/4.79 15.05/4.79 S is empty. 15.05/4.79 Rewrite Strategy: INNERMOST 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (13) DecreasingLoopProof (LOWER BOUND(ID)) 15.05/4.79 The following loop(s) give(s) rise to the lower bound Omega(n^1): 15.05/4.79 15.05/4.79 The rewrite sequence 15.05/4.79 15.05/4.79 activate(n__fst(s(X1_0), cons(Y2_0, Z3_0))) ->^+ cons(Y2_0, n__fst(activate(X1_0), activate(Z3_0))) 15.05/4.79 15.05/4.79 gives rise to a decreasing loop by considering the right hand sides subterm at position [1,0]. 15.05/4.79 15.05/4.79 The pumping substitution is [X1_0 / n__fst(s(X1_0), cons(Y2_0, Z3_0))]. 15.05/4.79 15.05/4.79 The result substitution is [ ]. 15.05/4.79 15.05/4.79 15.05/4.79 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (14) 15.05/4.79 Complex Obligation (BEST) 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (15) 15.05/4.79 Obligation: 15.05/4.79 Proved the lower bound n^1 for the following obligation: 15.05/4.79 15.05/4.79 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.05/4.79 15.05/4.79 15.05/4.79 The TRS R consists of the following rules: 15.05/4.79 15.05/4.79 fst(0, Z) -> nil 15.05/4.79 fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) 15.05/4.79 from(X) -> cons(X, n__from(s(X))) 15.05/4.79 add(0, X) -> X 15.05/4.79 add(s(X), Y) -> s(n__add(activate(X), Y)) 15.05/4.79 len(nil) -> 0 15.05/4.79 len(cons(X, Z)) -> s(n__len(activate(Z))) 15.05/4.79 fst(X1, X2) -> n__fst(X1, X2) 15.05/4.79 from(X) -> n__from(X) 15.05/4.79 add(X1, X2) -> n__add(X1, X2) 15.05/4.79 len(X) -> n__len(X) 15.05/4.79 activate(n__fst(X1, X2)) -> fst(X1, X2) 15.05/4.79 activate(n__from(X)) -> from(X) 15.05/4.79 activate(n__add(X1, X2)) -> add(X1, X2) 15.05/4.79 activate(n__len(X)) -> len(X) 15.05/4.79 activate(X) -> X 15.05/4.79 15.05/4.79 S is empty. 15.05/4.79 Rewrite Strategy: INNERMOST 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (16) LowerBoundPropagationProof (FINISHED) 15.05/4.79 Propagated lower bound. 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (17) 15.05/4.79 BOUNDS(n^1, INF) 15.05/4.79 15.05/4.79 ---------------------------------------- 15.05/4.79 15.05/4.79 (18) 15.05/4.79 Obligation: 15.05/4.79 Analyzing the following TRS for decreasing loops: 15.05/4.80 15.05/4.80 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.05/4.80 15.05/4.80 15.05/4.80 The TRS R consists of the following rules: 15.05/4.80 15.05/4.80 fst(0, Z) -> nil 15.05/4.80 fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) 15.05/4.80 from(X) -> cons(X, n__from(s(X))) 15.05/4.80 add(0, X) -> X 15.05/4.80 add(s(X), Y) -> s(n__add(activate(X), Y)) 15.05/4.80 len(nil) -> 0 15.05/4.80 len(cons(X, Z)) -> s(n__len(activate(Z))) 15.05/4.80 fst(X1, X2) -> n__fst(X1, X2) 15.05/4.80 from(X) -> n__from(X) 15.05/4.80 add(X1, X2) -> n__add(X1, X2) 15.05/4.80 len(X) -> n__len(X) 15.05/4.80 activate(n__fst(X1, X2)) -> fst(X1, X2) 15.05/4.80 activate(n__from(X)) -> from(X) 15.05/4.80 activate(n__add(X1, X2)) -> add(X1, X2) 15.05/4.80 activate(n__len(X)) -> len(X) 15.05/4.80 activate(X) -> X 15.05/4.80 15.05/4.80 S is empty. 15.05/4.80 Rewrite Strategy: INNERMOST 15.09/4.84 EOF