6.37/2.47 WORST_CASE(Omega(n^1), O(n^1)) 6.37/2.48 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 6.37/2.48 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.37/2.48 6.37/2.48 6.37/2.48 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.37/2.48 6.37/2.48 (0) CpxTRS 6.37/2.48 (1) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] 6.37/2.48 (2) CpxRelTRS 6.37/2.48 (3) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 6.37/2.48 (4) CpxRelTRS 6.37/2.48 (5) CpxTrsToCdtProof [UPPER BOUND(ID), 2 ms] 6.37/2.48 (6) CdtProblem 6.37/2.48 (7) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] 6.37/2.48 (8) CdtProblem 6.37/2.48 (9) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] 6.37/2.48 (10) CdtProblem 6.37/2.48 (11) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] 6.37/2.48 (12) CdtProblem 6.37/2.48 (13) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 61 ms] 6.37/2.48 (14) CdtProblem 6.37/2.48 (15) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] 6.37/2.48 (16) BOUNDS(1, 1) 6.37/2.48 (17) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 6.37/2.48 (18) TRS for Loop Detection 6.37/2.48 (19) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 6.37/2.48 (20) BEST 6.37/2.48 (21) proven lower bound 6.37/2.48 (22) LowerBoundPropagationProof [FINISHED, 0 ms] 6.37/2.48 (23) BOUNDS(n^1, INF) 6.37/2.48 (24) TRS for Loop Detection 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (0) 6.37/2.48 Obligation: 6.37/2.48 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.37/2.48 6.37/2.48 6.37/2.48 The TRS R consists of the following rules: 6.37/2.48 6.37/2.48 f(cons(nil, y)) -> y 6.37/2.48 f(cons(f(cons(nil, y)), z)) -> copy(n, y, z) 6.37/2.48 copy(0, y, z) -> f(z) 6.37/2.48 copy(s(x), y, z) -> copy(x, y, cons(f(y), z)) 6.37/2.48 6.37/2.48 S is empty. 6.37/2.48 Rewrite Strategy: FULL 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (1) NonCtorToCtorProof (UPPER BOUND(ID)) 6.37/2.48 transformed non-ctor to ctor-system 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (2) 6.37/2.48 Obligation: 6.37/2.48 The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1). 6.37/2.48 6.37/2.48 6.37/2.48 The TRS R consists of the following rules: 6.37/2.48 6.37/2.48 f(cons(nil, y)) -> y 6.37/2.48 copy(0, y, z) -> f(z) 6.37/2.48 copy(s(x), y, z) -> copy(x, y, cons(f(y), z)) 6.37/2.48 f(cons(c_f(cons(nil, y)), z)) -> copy(n, y, z) 6.37/2.48 6.37/2.48 The (relative) TRS S consists of the following rules: 6.37/2.48 6.37/2.48 f(x0) -> c_f(x0) 6.37/2.48 6.37/2.48 Rewrite Strategy: FULL 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (3) RcToIrcProof (BOTH BOUNDS(ID, ID)) 6.37/2.48 Converted rc-obligation to irc-obligation. 6.37/2.48 6.37/2.48 The duplicating contexts are: 6.37/2.48 copy(s(x), [], z) 6.37/2.48 6.37/2.48 6.37/2.48 The defined contexts are: 6.37/2.48 copy(x0, x1, cons([], x3)) 6.37/2.48 f([]) 6.37/2.48 copy(x0, x1, cons(x2, [])) 6.37/2.48 copy(n, [], x1) 6.37/2.48 copy(n, x0, []) 6.37/2.48 6.37/2.48 6.37/2.48 As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (4) 6.37/2.48 Obligation: 6.37/2.48 The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1). 6.37/2.48 6.37/2.48 6.37/2.48 The TRS R consists of the following rules: 6.37/2.48 6.37/2.48 f(cons(nil, y)) -> y 6.37/2.48 copy(0, y, z) -> f(z) 6.37/2.48 copy(s(x), y, z) -> copy(x, y, cons(f(y), z)) 6.37/2.48 f(cons(c_f(cons(nil, y)), z)) -> copy(n, y, z) 6.37/2.48 6.37/2.48 The (relative) TRS S consists of the following rules: 6.37/2.48 6.37/2.48 f(x0) -> c_f(x0) 6.37/2.48 6.37/2.48 Rewrite Strategy: INNERMOST 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (5) CpxTrsToCdtProof (UPPER BOUND(ID)) 6.37/2.48 Converted Cpx (relative) TRS to CDT 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (6) 6.37/2.48 Obligation: 6.37/2.48 Complexity Dependency Tuples Problem 6.37/2.48 6.37/2.48 Rules: 6.37/2.48 f(z0) -> c_f(z0) 6.37/2.48 f(cons(nil, z0)) -> z0 6.37/2.48 f(cons(c_f(cons(nil, z0)), z1)) -> copy(n, z0, z1) 6.37/2.48 copy(0, z0, z1) -> f(z1) 6.37/2.48 copy(s(z0), z1, z2) -> copy(z0, z1, cons(f(z1), z2)) 6.37/2.48 Tuples: 6.37/2.48 F(z0) -> c 6.37/2.48 F(cons(nil, z0)) -> c1 6.37/2.48 F(cons(c_f(cons(nil, z0)), z1)) -> c2(COPY(n, z0, z1)) 6.37/2.48 COPY(0, z0, z1) -> c3(F(z1)) 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2)), F(z1)) 6.37/2.48 S tuples: 6.37/2.48 F(cons(nil, z0)) -> c1 6.37/2.48 F(cons(c_f(cons(nil, z0)), z1)) -> c2(COPY(n, z0, z1)) 6.37/2.48 COPY(0, z0, z1) -> c3(F(z1)) 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2)), F(z1)) 6.37/2.48 K tuples:none 6.37/2.48 Defined Rule Symbols: f_1, copy_3 6.37/2.48 6.37/2.48 Defined Pair Symbols: F_1, COPY_3 6.37/2.48 6.37/2.48 Compound Symbols: c, c1, c2_1, c3_1, c4_2 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) 6.37/2.48 Removed 4 trailing nodes: 6.37/2.48 F(z0) -> c 6.37/2.48 F(cons(c_f(cons(nil, z0)), z1)) -> c2(COPY(n, z0, z1)) 6.37/2.48 F(cons(nil, z0)) -> c1 6.37/2.48 COPY(0, z0, z1) -> c3(F(z1)) 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (8) 6.37/2.48 Obligation: 6.37/2.48 Complexity Dependency Tuples Problem 6.37/2.48 6.37/2.48 Rules: 6.37/2.48 f(z0) -> c_f(z0) 6.37/2.48 f(cons(nil, z0)) -> z0 6.37/2.48 f(cons(c_f(cons(nil, z0)), z1)) -> copy(n, z0, z1) 6.37/2.48 copy(0, z0, z1) -> f(z1) 6.37/2.48 copy(s(z0), z1, z2) -> copy(z0, z1, cons(f(z1), z2)) 6.37/2.48 Tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2)), F(z1)) 6.37/2.48 S tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2)), F(z1)) 6.37/2.48 K tuples:none 6.37/2.48 Defined Rule Symbols: f_1, copy_3 6.37/2.48 6.37/2.48 Defined Pair Symbols: COPY_3 6.37/2.48 6.37/2.48 Compound Symbols: c4_2 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (9) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) 6.37/2.48 Removed 1 trailing tuple parts 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (10) 6.37/2.48 Obligation: 6.37/2.48 Complexity Dependency Tuples Problem 6.37/2.48 6.37/2.48 Rules: 6.37/2.48 f(z0) -> c_f(z0) 6.37/2.48 f(cons(nil, z0)) -> z0 6.37/2.48 f(cons(c_f(cons(nil, z0)), z1)) -> copy(n, z0, z1) 6.37/2.48 copy(0, z0, z1) -> f(z1) 6.37/2.48 copy(s(z0), z1, z2) -> copy(z0, z1, cons(f(z1), z2)) 6.37/2.48 Tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 S tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 K tuples:none 6.37/2.48 Defined Rule Symbols: f_1, copy_3 6.37/2.48 6.37/2.48 Defined Pair Symbols: COPY_3 6.37/2.48 6.37/2.48 Compound Symbols: c4_1 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (11) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) 6.37/2.48 The following rules are not usable and were removed: 6.37/2.48 copy(0, z0, z1) -> f(z1) 6.37/2.48 copy(s(z0), z1, z2) -> copy(z0, z1, cons(f(z1), z2)) 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (12) 6.37/2.48 Obligation: 6.37/2.48 Complexity Dependency Tuples Problem 6.37/2.48 6.37/2.48 Rules: 6.37/2.48 f(z0) -> c_f(z0) 6.37/2.48 f(cons(nil, z0)) -> z0 6.37/2.48 f(cons(c_f(cons(nil, z0)), z1)) -> copy(n, z0, z1) 6.37/2.48 Tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 S tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 K tuples:none 6.37/2.48 Defined Rule Symbols: f_1 6.37/2.48 6.37/2.48 Defined Pair Symbols: COPY_3 6.37/2.48 6.37/2.48 Compound Symbols: c4_1 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (13) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 6.37/2.48 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 We considered the (Usable) Rules:none 6.37/2.48 And the Tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 The order we found is given by the following interpretation: 6.37/2.48 6.37/2.48 Polynomial interpretation : 6.37/2.48 6.37/2.48 POL(COPY(x_1, x_2, x_3)) = x_1 6.37/2.48 POL(c4(x_1)) = x_1 6.37/2.48 POL(c_f(x_1)) = [1] + x_1 6.37/2.48 POL(cons(x_1, x_2)) = [1] + x_1 + x_2 6.37/2.48 POL(copy(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 6.37/2.48 POL(f(x_1)) = [1] + x_1 6.37/2.48 POL(n) = 0 6.37/2.48 POL(nil) = 0 6.37/2.48 POL(s(x_1)) = [1] + x_1 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (14) 6.37/2.48 Obligation: 6.37/2.48 Complexity Dependency Tuples Problem 6.37/2.48 6.37/2.48 Rules: 6.37/2.48 f(z0) -> c_f(z0) 6.37/2.48 f(cons(nil, z0)) -> z0 6.37/2.48 f(cons(c_f(cons(nil, z0)), z1)) -> copy(n, z0, z1) 6.37/2.48 Tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 S tuples:none 6.37/2.48 K tuples: 6.37/2.48 COPY(s(z0), z1, z2) -> c4(COPY(z0, z1, cons(f(z1), z2))) 6.37/2.48 Defined Rule Symbols: f_1 6.37/2.48 6.37/2.48 Defined Pair Symbols: COPY_3 6.37/2.48 6.37/2.48 Compound Symbols: c4_1 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (15) SIsEmptyProof (BOTH BOUNDS(ID, ID)) 6.37/2.48 The set S is empty 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (16) 6.37/2.48 BOUNDS(1, 1) 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (17) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 6.37/2.48 Transformed a relative TRS into a decreasing-loop problem. 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (18) 6.37/2.48 Obligation: 6.37/2.48 Analyzing the following TRS for decreasing loops: 6.37/2.48 6.37/2.48 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.37/2.48 6.37/2.48 6.37/2.48 The TRS R consists of the following rules: 6.37/2.48 6.37/2.48 f(cons(nil, y)) -> y 6.37/2.48 f(cons(f(cons(nil, y)), z)) -> copy(n, y, z) 6.37/2.48 copy(0, y, z) -> f(z) 6.37/2.48 copy(s(x), y, z) -> copy(x, y, cons(f(y), z)) 6.37/2.48 6.37/2.48 S is empty. 6.37/2.48 Rewrite Strategy: FULL 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (19) DecreasingLoopProof (LOWER BOUND(ID)) 6.37/2.48 The following loop(s) give(s) rise to the lower bound Omega(n^1): 6.37/2.48 6.37/2.48 The rewrite sequence 6.37/2.48 6.37/2.48 copy(s(x), y, z) ->^+ copy(x, y, cons(f(y), z)) 6.37/2.48 6.37/2.48 gives rise to a decreasing loop by considering the right hand sides subterm at position []. 6.37/2.48 6.37/2.48 The pumping substitution is [x / s(x)]. 6.37/2.48 6.37/2.48 The result substitution is [z / cons(f(y), z)]. 6.37/2.48 6.37/2.48 6.37/2.48 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (20) 6.37/2.48 Complex Obligation (BEST) 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (21) 6.37/2.48 Obligation: 6.37/2.48 Proved the lower bound n^1 for the following obligation: 6.37/2.48 6.37/2.48 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.37/2.48 6.37/2.48 6.37/2.48 The TRS R consists of the following rules: 6.37/2.48 6.37/2.48 f(cons(nil, y)) -> y 6.37/2.48 f(cons(f(cons(nil, y)), z)) -> copy(n, y, z) 6.37/2.48 copy(0, y, z) -> f(z) 6.37/2.48 copy(s(x), y, z) -> copy(x, y, cons(f(y), z)) 6.37/2.48 6.37/2.48 S is empty. 6.37/2.48 Rewrite Strategy: FULL 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (22) LowerBoundPropagationProof (FINISHED) 6.37/2.48 Propagated lower bound. 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (23) 6.37/2.48 BOUNDS(n^1, INF) 6.37/2.48 6.37/2.48 ---------------------------------------- 6.37/2.48 6.37/2.48 (24) 6.37/2.48 Obligation: 6.37/2.48 Analyzing the following TRS for decreasing loops: 6.37/2.48 6.37/2.48 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.37/2.48 6.37/2.48 6.37/2.48 The TRS R consists of the following rules: 6.37/2.48 6.37/2.48 f(cons(nil, y)) -> y 6.37/2.48 f(cons(f(cons(nil, y)), z)) -> copy(n, y, z) 6.37/2.48 copy(0, y, z) -> f(z) 6.37/2.48 copy(s(x), y, z) -> copy(x, y, cons(f(y), z)) 6.37/2.48 6.37/2.48 S is empty. 6.37/2.48 Rewrite Strategy: FULL 6.65/2.51 EOF