15.16/4.69 WORST_CASE(Omega(n^1), O(n^1)) 15.27/4.71 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 15.27/4.71 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 15.27/4.71 15.27/4.71 15.27/4.71 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.27/4.71 15.27/4.71 (0) CpxTRS 15.27/4.71 (1) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] 15.27/4.71 (2) CdtProblem 15.27/4.71 (3) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] 15.27/4.71 (4) CdtProblem 15.27/4.71 (5) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] 15.27/4.71 (6) CdtProblem 15.27/4.71 (7) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] 15.27/4.71 (8) CdtProblem 15.27/4.71 (9) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 17 ms] 15.27/4.71 (10) CdtProblem 15.27/4.71 (11) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] 15.27/4.71 (12) BOUNDS(1, 1) 15.27/4.71 (13) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 15.27/4.71 (14) TRS for Loop Detection 15.27/4.71 (15) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 15.27/4.71 (16) BEST 15.27/4.71 (17) proven lower bound 15.27/4.71 (18) LowerBoundPropagationProof [FINISHED, 0 ms] 15.27/4.71 (19) BOUNDS(n^1, INF) 15.27/4.71 (20) TRS for Loop Detection 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (0) 15.27/4.71 Obligation: 15.27/4.71 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.27/4.71 15.27/4.71 15.27/4.71 The TRS R consists of the following rules: 15.27/4.71 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(x))) -> prime1(s(s(x)), s(x)) 15.27/4.71 prime1(x, 0) -> false 15.27/4.71 prime1(x, s(0)) -> true 15.27/4.71 prime1(x, s(s(y))) -> and(not(divp(s(s(y)), x)), prime1(x, s(y))) 15.27/4.71 divp(x, y) -> =(rem(x, y), 0) 15.27/4.71 15.27/4.71 S is empty. 15.27/4.71 Rewrite Strategy: INNERMOST 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (1) CpxTrsToCdtProof (UPPER BOUND(ID)) 15.27/4.71 Converted Cpx (relative) TRS to CDT 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (2) 15.27/4.71 Obligation: 15.27/4.71 Complexity Dependency Tuples Problem 15.27/4.71 15.27/4.71 Rules: 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(z0))) -> prime1(s(s(z0)), s(z0)) 15.27/4.71 prime1(z0, 0) -> false 15.27/4.71 prime1(z0, s(0)) -> true 15.27/4.71 prime1(z0, s(s(z1))) -> and(not(divp(s(s(z1)), z0)), prime1(z0, s(z1))) 15.27/4.71 divp(z0, z1) -> =(rem(z0, z1), 0) 15.27/4.71 Tuples: 15.27/4.71 PRIME(0) -> c 15.27/4.71 PRIME(s(0)) -> c1 15.27/4.71 PRIME(s(s(z0))) -> c2(PRIME1(s(s(z0)), s(z0))) 15.27/4.71 PRIME1(z0, 0) -> c3 15.27/4.71 PRIME1(z0, s(0)) -> c4 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(DIVP(s(s(z1)), z0), PRIME1(z0, s(z1))) 15.27/4.71 DIVP(z0, z1) -> c6 15.27/4.71 S tuples: 15.27/4.71 PRIME(0) -> c 15.27/4.71 PRIME(s(0)) -> c1 15.27/4.71 PRIME(s(s(z0))) -> c2(PRIME1(s(s(z0)), s(z0))) 15.27/4.71 PRIME1(z0, 0) -> c3 15.27/4.71 PRIME1(z0, s(0)) -> c4 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(DIVP(s(s(z1)), z0), PRIME1(z0, s(z1))) 15.27/4.71 DIVP(z0, z1) -> c6 15.27/4.71 K tuples:none 15.27/4.71 Defined Rule Symbols: prime_1, prime1_2, divp_2 15.27/4.71 15.27/4.71 Defined Pair Symbols: PRIME_1, PRIME1_2, DIVP_2 15.27/4.71 15.27/4.71 Compound Symbols: c, c1, c2_1, c3, c4, c5_2, c6 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (3) CdtLeafRemovalProof (ComplexityIfPolyImplication) 15.27/4.71 Removed 1 leading nodes: 15.27/4.71 PRIME(s(s(z0))) -> c2(PRIME1(s(s(z0)), s(z0))) 15.27/4.71 Removed 5 trailing nodes: 15.27/4.71 PRIME(0) -> c 15.27/4.71 PRIME(s(0)) -> c1 15.27/4.71 PRIME1(z0, s(0)) -> c4 15.27/4.71 DIVP(z0, z1) -> c6 15.27/4.71 PRIME1(z0, 0) -> c3 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (4) 15.27/4.71 Obligation: 15.27/4.71 Complexity Dependency Tuples Problem 15.27/4.71 15.27/4.71 Rules: 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(z0))) -> prime1(s(s(z0)), s(z0)) 15.27/4.71 prime1(z0, 0) -> false 15.27/4.71 prime1(z0, s(0)) -> true 15.27/4.71 prime1(z0, s(s(z1))) -> and(not(divp(s(s(z1)), z0)), prime1(z0, s(z1))) 15.27/4.71 divp(z0, z1) -> =(rem(z0, z1), 0) 15.27/4.71 Tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(DIVP(s(s(z1)), z0), PRIME1(z0, s(z1))) 15.27/4.71 S tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(DIVP(s(s(z1)), z0), PRIME1(z0, s(z1))) 15.27/4.71 K tuples:none 15.27/4.71 Defined Rule Symbols: prime_1, prime1_2, divp_2 15.27/4.71 15.27/4.71 Defined Pair Symbols: PRIME1_2 15.27/4.71 15.27/4.71 Compound Symbols: c5_2 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) 15.27/4.71 Removed 1 trailing tuple parts 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (6) 15.27/4.71 Obligation: 15.27/4.71 Complexity Dependency Tuples Problem 15.27/4.71 15.27/4.71 Rules: 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(z0))) -> prime1(s(s(z0)), s(z0)) 15.27/4.71 prime1(z0, 0) -> false 15.27/4.71 prime1(z0, s(0)) -> true 15.27/4.71 prime1(z0, s(s(z1))) -> and(not(divp(s(s(z1)), z0)), prime1(z0, s(z1))) 15.27/4.71 divp(z0, z1) -> =(rem(z0, z1), 0) 15.27/4.71 Tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 S tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 K tuples:none 15.27/4.71 Defined Rule Symbols: prime_1, prime1_2, divp_2 15.27/4.71 15.27/4.71 Defined Pair Symbols: PRIME1_2 15.27/4.71 15.27/4.71 Compound Symbols: c5_1 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (7) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) 15.27/4.71 The following rules are not usable and were removed: 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(z0))) -> prime1(s(s(z0)), s(z0)) 15.27/4.71 prime1(z0, 0) -> false 15.27/4.71 prime1(z0, s(0)) -> true 15.27/4.71 prime1(z0, s(s(z1))) -> and(not(divp(s(s(z1)), z0)), prime1(z0, s(z1))) 15.27/4.71 divp(z0, z1) -> =(rem(z0, z1), 0) 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (8) 15.27/4.71 Obligation: 15.27/4.71 Complexity Dependency Tuples Problem 15.27/4.71 15.27/4.71 Rules:none 15.27/4.71 Tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 S tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 K tuples:none 15.27/4.71 Defined Rule Symbols:none 15.27/4.71 15.27/4.71 Defined Pair Symbols: PRIME1_2 15.27/4.71 15.27/4.71 Compound Symbols: c5_1 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (9) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 15.27/4.71 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 We considered the (Usable) Rules:none 15.27/4.71 And the Tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 The order we found is given by the following interpretation: 15.27/4.71 15.27/4.71 Polynomial interpretation : 15.27/4.71 15.27/4.71 POL(PRIME1(x_1, x_2)) = x_2 15.27/4.71 POL(c5(x_1)) = x_1 15.27/4.71 POL(s(x_1)) = [1] + x_1 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (10) 15.27/4.71 Obligation: 15.27/4.71 Complexity Dependency Tuples Problem 15.27/4.71 15.27/4.71 Rules:none 15.27/4.71 Tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 S tuples:none 15.27/4.71 K tuples: 15.27/4.71 PRIME1(z0, s(s(z1))) -> c5(PRIME1(z0, s(z1))) 15.27/4.71 Defined Rule Symbols:none 15.27/4.71 15.27/4.71 Defined Pair Symbols: PRIME1_2 15.27/4.71 15.27/4.71 Compound Symbols: c5_1 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (11) SIsEmptyProof (BOTH BOUNDS(ID, ID)) 15.27/4.71 The set S is empty 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (12) 15.27/4.71 BOUNDS(1, 1) 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (13) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 15.27/4.71 Transformed a relative TRS into a decreasing-loop problem. 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (14) 15.27/4.71 Obligation: 15.27/4.71 Analyzing the following TRS for decreasing loops: 15.27/4.71 15.27/4.71 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.27/4.71 15.27/4.71 15.27/4.71 The TRS R consists of the following rules: 15.27/4.71 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(x))) -> prime1(s(s(x)), s(x)) 15.27/4.71 prime1(x, 0) -> false 15.27/4.71 prime1(x, s(0)) -> true 15.27/4.71 prime1(x, s(s(y))) -> and(not(divp(s(s(y)), x)), prime1(x, s(y))) 15.27/4.71 divp(x, y) -> =(rem(x, y), 0) 15.27/4.71 15.27/4.71 S is empty. 15.27/4.71 Rewrite Strategy: INNERMOST 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (15) DecreasingLoopProof (LOWER BOUND(ID)) 15.27/4.71 The following loop(s) give(s) rise to the lower bound Omega(n^1): 15.27/4.71 15.27/4.71 The rewrite sequence 15.27/4.71 15.27/4.71 prime1(x, s(s(y))) ->^+ and(not(divp(s(s(y)), x)), prime1(x, s(y))) 15.27/4.71 15.27/4.71 gives rise to a decreasing loop by considering the right hand sides subterm at position [1]. 15.27/4.71 15.27/4.71 The pumping substitution is [y / s(y)]. 15.27/4.71 15.27/4.71 The result substitution is [ ]. 15.27/4.71 15.27/4.71 15.27/4.71 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (16) 15.27/4.71 Complex Obligation (BEST) 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (17) 15.27/4.71 Obligation: 15.27/4.71 Proved the lower bound n^1 for the following obligation: 15.27/4.71 15.27/4.71 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.27/4.71 15.27/4.71 15.27/4.71 The TRS R consists of the following rules: 15.27/4.71 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(x))) -> prime1(s(s(x)), s(x)) 15.27/4.71 prime1(x, 0) -> false 15.27/4.71 prime1(x, s(0)) -> true 15.27/4.71 prime1(x, s(s(y))) -> and(not(divp(s(s(y)), x)), prime1(x, s(y))) 15.27/4.71 divp(x, y) -> =(rem(x, y), 0) 15.27/4.71 15.27/4.71 S is empty. 15.27/4.71 Rewrite Strategy: INNERMOST 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (18) LowerBoundPropagationProof (FINISHED) 15.27/4.71 Propagated lower bound. 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (19) 15.27/4.71 BOUNDS(n^1, INF) 15.27/4.71 15.27/4.71 ---------------------------------------- 15.27/4.71 15.27/4.71 (20) 15.27/4.71 Obligation: 15.27/4.71 Analyzing the following TRS for decreasing loops: 15.27/4.71 15.27/4.71 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 15.27/4.71 15.27/4.71 15.27/4.71 The TRS R consists of the following rules: 15.27/4.71 15.27/4.71 prime(0) -> false 15.27/4.71 prime(s(0)) -> false 15.27/4.71 prime(s(s(x))) -> prime1(s(s(x)), s(x)) 15.27/4.71 prime1(x, 0) -> false 15.27/4.71 prime1(x, s(0)) -> true 15.27/4.71 prime1(x, s(s(y))) -> and(not(divp(s(s(y)), x)), prime1(x, s(y))) 15.27/4.71 divp(x, y) -> =(rem(x, y), 0) 15.27/4.71 15.27/4.71 S is empty. 15.27/4.71 Rewrite Strategy: INNERMOST 15.34/4.76 EOF