22.33/7.27 WORST_CASE(Omega(n^1), O(n^1)) 22.45/7.88 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 22.45/7.88 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 22.45/7.88 22.45/7.88 22.45/7.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.45/7.88 22.45/7.88 (0) CpxTRS 22.45/7.88 (1) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] 22.45/7.88 (2) CpxWeightedTrs 22.45/7.88 (3) CpxWeightedTrsRenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 22.45/7.88 (4) CpxWeightedTrs 22.45/7.88 (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 22.45/7.88 (6) CpxTypedWeightedTrs 22.45/7.88 (7) CompletionProof [UPPER BOUND(ID), 0 ms] 22.45/7.88 (8) CpxTypedWeightedCompleteTrs 22.45/7.88 (9) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] 22.45/7.88 (10) CpxTypedWeightedCompleteTrs 22.45/7.88 (11) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] 22.45/7.88 (12) CpxRNTS 22.45/7.88 (13) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] 22.45/7.88 (14) CpxRNTS 22.45/7.88 (15) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] 22.45/7.88 (16) CpxRNTS 22.45/7.88 (17) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 22.45/7.88 (18) CpxRNTS 22.45/7.88 (19) IntTrsBoundProof [UPPER BOUND(ID), 991 ms] 22.45/7.88 (20) CpxRNTS 22.45/7.88 (21) IntTrsBoundProof [UPPER BOUND(ID), 219 ms] 22.45/7.88 (22) CpxRNTS 22.45/7.88 (23) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 22.45/7.88 (24) CpxRNTS 22.45/7.88 (25) IntTrsBoundProof [UPPER BOUND(ID), 211 ms] 22.45/7.88 (26) CpxRNTS 22.45/7.88 (27) IntTrsBoundProof [UPPER BOUND(ID), 52 ms] 22.45/7.88 (28) CpxRNTS 22.45/7.88 (29) FinalProof [FINISHED, 0 ms] 22.45/7.88 (30) BOUNDS(1, n^1) 22.45/7.88 (31) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 22.45/7.88 (32) TRS for Loop Detection 22.45/7.88 (33) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 22.45/7.88 (34) BEST 22.45/7.88 (35) proven lower bound 22.45/7.88 (36) LowerBoundPropagationProof [FINISHED, 0 ms] 22.45/7.88 (37) BOUNDS(n^1, INF) 22.45/7.88 (38) TRS for Loop Detection 22.45/7.88 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (0) 22.45/7.88 Obligation: 22.45/7.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.45/7.88 22.45/7.88 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 -(0, y) -> 0 22.45/7.88 -(x, 0) -> x 22.45/7.88 -(x, s(y)) -> if(greater(x, s(y)), s(-(x, p(s(y)))), 0) 22.45/7.88 p(0) -> 0 22.45/7.88 p(s(x)) -> x 22.45/7.88 22.45/7.88 S is empty. 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (1) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) 22.45/7.88 Transformed relative TRS to weighted TRS 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (2) 22.45/7.88 Obligation: 22.45/7.88 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). 22.45/7.88 22.45/7.88 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 -(0, y) -> 0 [1] 22.45/7.88 -(x, 0) -> x [1] 22.45/7.88 -(x, s(y)) -> if(greater(x, s(y)), s(-(x, p(s(y)))), 0) [1] 22.45/7.88 p(0) -> 0 [1] 22.45/7.88 p(s(x)) -> x [1] 22.45/7.88 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (3) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID)) 22.45/7.88 Renamed defined symbols to avoid conflicts with arithmetic symbols: 22.45/7.88 22.45/7.88 - => minus 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (4) 22.45/7.88 Obligation: 22.45/7.88 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). 22.45/7.88 22.45/7.88 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 minus(0, y) -> 0 [1] 22.45/7.88 minus(x, 0) -> x [1] 22.45/7.88 minus(x, s(y)) -> if(greater(x, s(y)), s(minus(x, p(s(y)))), 0) [1] 22.45/7.88 p(0) -> 0 [1] 22.45/7.88 p(s(x)) -> x [1] 22.45/7.88 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 22.45/7.88 Infered types. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (6) 22.45/7.88 Obligation: 22.45/7.88 Runtime Complexity Weighted TRS with Types. 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 minus(0, y) -> 0 [1] 22.45/7.88 minus(x, 0) -> x [1] 22.45/7.88 minus(x, s(y)) -> if(greater(x, s(y)), s(minus(x, p(s(y)))), 0) [1] 22.45/7.88 p(0) -> 0 [1] 22.45/7.88 p(s(x)) -> x [1] 22.45/7.88 22.45/7.88 The TRS has the following type information: 22.45/7.88 minus :: 0:s:if -> 0:s:if -> 0:s:if 22.45/7.88 0 :: 0:s:if 22.45/7.88 s :: 0:s:if -> 0:s:if 22.45/7.88 if :: greater -> 0:s:if -> 0:s:if -> 0:s:if 22.45/7.88 greater :: 0:s:if -> 0:s:if -> greater 22.45/7.88 p :: 0:s:if -> 0:s:if 22.45/7.88 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (7) CompletionProof (UPPER BOUND(ID)) 22.45/7.88 The transformation into a RNTS is sound, since: 22.45/7.88 22.45/7.88 (a) The obligation is a constructor system where every type has a constant constructor, 22.45/7.88 22.45/7.88 (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: 22.45/7.88 22.45/7.88 minus_2 22.45/7.88 22.45/7.88 (c) The following functions are completely defined: 22.45/7.88 22.45/7.88 p_1 22.45/7.88 22.45/7.88 Due to the following rules being added: 22.45/7.88 22.45/7.88 p(v0) -> 0 [0] 22.45/7.88 22.45/7.88 And the following fresh constants: const 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (8) 22.45/7.88 Obligation: 22.45/7.88 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 22.45/7.88 22.45/7.88 Runtime Complexity Weighted TRS with Types. 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 minus(0, y) -> 0 [1] 22.45/7.88 minus(x, 0) -> x [1] 22.45/7.88 minus(x, s(y)) -> if(greater(x, s(y)), s(minus(x, p(s(y)))), 0) [1] 22.45/7.88 p(0) -> 0 [1] 22.45/7.88 p(s(x)) -> x [1] 22.45/7.88 p(v0) -> 0 [0] 22.45/7.88 22.45/7.88 The TRS has the following type information: 22.45/7.88 minus :: 0:s:if -> 0:s:if -> 0:s:if 22.45/7.88 0 :: 0:s:if 22.45/7.88 s :: 0:s:if -> 0:s:if 22.45/7.88 if :: greater -> 0:s:if -> 0:s:if -> 0:s:if 22.45/7.88 greater :: 0:s:if -> 0:s:if -> greater 22.45/7.88 p :: 0:s:if -> 0:s:if 22.45/7.88 const :: greater 22.45/7.88 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (9) NarrowingProof (BOTH BOUNDS(ID, ID)) 22.45/7.88 Narrowed the inner basic terms of all right-hand sides by a single narrowing step. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (10) 22.45/7.88 Obligation: 22.45/7.88 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 22.45/7.88 22.45/7.88 Runtime Complexity Weighted TRS with Types. 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 minus(0, y) -> 0 [1] 22.45/7.88 minus(x, 0) -> x [1] 22.45/7.88 minus(x, s(y)) -> if(greater(x, s(y)), s(minus(x, y)), 0) [2] 22.45/7.88 minus(x, s(y)) -> if(greater(x, s(y)), s(minus(x, 0)), 0) [1] 22.45/7.88 p(0) -> 0 [1] 22.45/7.88 p(s(x)) -> x [1] 22.45/7.88 p(v0) -> 0 [0] 22.45/7.88 22.45/7.88 The TRS has the following type information: 22.45/7.88 minus :: 0:s:if -> 0:s:if -> 0:s:if 22.45/7.88 0 :: 0:s:if 22.45/7.88 s :: 0:s:if -> 0:s:if 22.45/7.88 if :: greater -> 0:s:if -> 0:s:if -> 0:s:if 22.45/7.88 greater :: 0:s:if -> 0:s:if -> greater 22.45/7.88 p :: 0:s:if -> 0:s:if 22.45/7.88 const :: greater 22.45/7.88 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (11) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) 22.45/7.88 Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. 22.45/7.88 The constant constructors are abstracted as follows: 22.45/7.88 22.45/7.88 0 => 0 22.45/7.88 const => 0 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (12) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> x :|: x >= 0, z = x, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: y >= 0, z = 0, z' = y 22.45/7.88 minus(z, z') -{ 2 }-> 1 + (1 + x + (1 + y)) + (1 + minus(x, y)) + 0 :|: z' = 1 + y, x >= 0, y >= 0, z = x 22.45/7.88 minus(z, z') -{ 1 }-> 1 + (1 + x + (1 + y)) + (1 + minus(x, 0)) + 0 :|: z' = 1 + y, x >= 0, y >= 0, z = x 22.45/7.88 p(z) -{ 1 }-> x :|: x >= 0, z = 1 + x 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 22.45/7.88 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (13) SimplificationProof (BOTH BOUNDS(ID, ID)) 22.45/7.88 Simplified the RNTS by moving equalities from the constraints into the right-hand sides. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (14) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 1 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, 0)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 2 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, z' - 1)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (15) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) 22.45/7.88 Found the following analysis order by SCC decomposition: 22.45/7.88 22.45/7.88 { minus } 22.45/7.88 { p } 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (16) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 1 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, 0)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 2 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, z' - 1)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: {minus}, {p} 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (17) ResultPropagationProof (UPPER BOUND(ID)) 22.45/7.88 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (18) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 1 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, 0)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 2 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, z' - 1)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: {minus}, {p} 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (19) IntTrsBoundProof (UPPER BOUND(ID)) 22.45/7.88 22.45/7.88 Computed SIZE bound using CoFloCo for: minus 22.45/7.88 after applying outer abstraction to obtain an ITS, 22.45/7.88 resulting in: O(n^2) with polynomial bound: 3 + 2*z + z*z' + 3*z' + z'^2 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (20) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 1 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, 0)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 2 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, z' - 1)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: {minus}, {p} 22.45/7.88 Previous analysis results are: 22.45/7.88 minus: runtime: ?, size: O(n^2) [3 + 2*z + z*z' + 3*z' + z'^2] 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (21) IntTrsBoundProof (UPPER BOUND(ID)) 22.45/7.88 22.45/7.88 Computed RUNTIME bound using CoFloCo for: minus 22.45/7.88 after applying outer abstraction to obtain an ITS, 22.45/7.88 resulting in: O(n^1) with polynomial bound: 4 + 2*z' 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (22) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 1 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, 0)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 2 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + minus(z, z' - 1)) + 0 :|: z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: {p} 22.45/7.88 Previous analysis results are: 22.45/7.88 minus: runtime: O(n^1) [4 + 2*z'], size: O(n^2) [3 + 2*z + z*z' + 3*z' + z'^2] 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (23) ResultPropagationProof (UPPER BOUND(ID)) 22.45/7.88 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (24) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 4 + 2*z' }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + s) + 0 :|: s >= 0, s <= (z' - 1) * (z' - 1) + 3 * (z' - 1) + 2 * z + 3 + (z' - 1) * z, z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 5 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + s') + 0 :|: s' >= 0, s' <= 0 * 0 + 3 * 0 + 2 * z + 3 + 0 * z, z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: {p} 22.45/7.88 Previous analysis results are: 22.45/7.88 minus: runtime: O(n^1) [4 + 2*z'], size: O(n^2) [3 + 2*z + z*z' + 3*z' + z'^2] 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (25) IntTrsBoundProof (UPPER BOUND(ID)) 22.45/7.88 22.45/7.88 Computed SIZE bound using KoAT for: p 22.45/7.88 after applying outer abstraction to obtain an ITS, 22.45/7.88 resulting in: O(n^1) with polynomial bound: z 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (26) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 4 + 2*z' }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + s) + 0 :|: s >= 0, s <= (z' - 1) * (z' - 1) + 3 * (z' - 1) + 2 * z + 3 + (z' - 1) * z, z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 5 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + s') + 0 :|: s' >= 0, s' <= 0 * 0 + 3 * 0 + 2 * z + 3 + 0 * z, z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: {p} 22.45/7.88 Previous analysis results are: 22.45/7.88 minus: runtime: O(n^1) [4 + 2*z'], size: O(n^2) [3 + 2*z + z*z' + 3*z' + z'^2] 22.45/7.88 p: runtime: ?, size: O(n^1) [z] 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (27) IntTrsBoundProof (UPPER BOUND(ID)) 22.45/7.88 22.45/7.88 Computed RUNTIME bound using CoFloCo for: p 22.45/7.88 after applying outer abstraction to obtain an ITS, 22.45/7.88 resulting in: O(1) with polynomial bound: 1 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (28) 22.45/7.88 Obligation: 22.45/7.88 Complexity RNTS consisting of the following rules: 22.45/7.88 22.45/7.88 minus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 22.45/7.88 minus(z, z') -{ 1 }-> 0 :|: z' >= 0, z = 0 22.45/7.88 minus(z, z') -{ 4 + 2*z' }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + s) + 0 :|: s >= 0, s <= (z' - 1) * (z' - 1) + 3 * (z' - 1) + 2 * z + 3 + (z' - 1) * z, z >= 0, z' - 1 >= 0 22.45/7.88 minus(z, z') -{ 5 }-> 1 + (1 + z + (1 + (z' - 1))) + (1 + s') + 0 :|: s' >= 0, s' <= 0 * 0 + 3 * 0 + 2 * z + 3 + 0 * z, z >= 0, z' - 1 >= 0 22.45/7.88 p(z) -{ 1 }-> 0 :|: z = 0 22.45/7.88 p(z) -{ 0 }-> 0 :|: z >= 0 22.45/7.88 p(z) -{ 1 }-> z - 1 :|: z - 1 >= 0 22.45/7.88 22.45/7.88 Function symbols to be analyzed: 22.45/7.88 Previous analysis results are: 22.45/7.88 minus: runtime: O(n^1) [4 + 2*z'], size: O(n^2) [3 + 2*z + z*z' + 3*z' + z'^2] 22.45/7.88 p: runtime: O(1) [1], size: O(n^1) [z] 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (29) FinalProof (FINISHED) 22.45/7.88 Computed overall runtime complexity 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (30) 22.45/7.88 BOUNDS(1, n^1) 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (31) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 22.45/7.88 Transformed a relative TRS into a decreasing-loop problem. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (32) 22.45/7.88 Obligation: 22.45/7.88 Analyzing the following TRS for decreasing loops: 22.45/7.88 22.45/7.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.45/7.88 22.45/7.88 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 -(0, y) -> 0 22.45/7.88 -(x, 0) -> x 22.45/7.88 -(x, s(y)) -> if(greater(x, s(y)), s(-(x, p(s(y)))), 0) 22.45/7.88 p(0) -> 0 22.45/7.88 p(s(x)) -> x 22.45/7.88 22.45/7.88 S is empty. 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (33) DecreasingLoopProof (LOWER BOUND(ID)) 22.45/7.88 The following loop(s) give(s) rise to the lower bound Omega(n^1): 22.45/7.88 22.45/7.88 The rewrite sequence 22.45/7.88 22.45/7.88 -(x, s(y)) ->^+ if(greater(x, s(y)), s(-(x, y)), 0) 22.45/7.88 22.45/7.88 gives rise to a decreasing loop by considering the right hand sides subterm at position [1,0]. 22.45/7.88 22.45/7.88 The pumping substitution is [y / s(y)]. 22.45/7.88 22.45/7.88 The result substitution is [ ]. 22.45/7.88 22.45/7.88 22.45/7.88 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (34) 22.45/7.88 Complex Obligation (BEST) 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (35) 22.45/7.88 Obligation: 22.45/7.88 Proved the lower bound n^1 for the following obligation: 22.45/7.88 22.45/7.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.45/7.88 22.45/7.88 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 -(0, y) -> 0 22.45/7.88 -(x, 0) -> x 22.45/7.88 -(x, s(y)) -> if(greater(x, s(y)), s(-(x, p(s(y)))), 0) 22.45/7.88 p(0) -> 0 22.45/7.88 p(s(x)) -> x 22.45/7.88 22.45/7.88 S is empty. 22.45/7.88 Rewrite Strategy: INNERMOST 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (36) LowerBoundPropagationProof (FINISHED) 22.45/7.88 Propagated lower bound. 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (37) 22.45/7.88 BOUNDS(n^1, INF) 22.45/7.88 22.45/7.88 ---------------------------------------- 22.45/7.88 22.45/7.88 (38) 22.45/7.88 Obligation: 22.45/7.88 Analyzing the following TRS for decreasing loops: 22.45/7.88 22.45/7.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.45/7.88 22.45/7.88 22.45/7.88 The TRS R consists of the following rules: 22.45/7.88 22.45/7.88 -(0, y) -> 0 22.45/7.88 -(x, 0) -> x 22.45/7.88 -(x, s(y)) -> if(greater(x, s(y)), s(-(x, p(s(y)))), 0) 22.45/7.88 p(0) -> 0 22.45/7.88 p(s(x)) -> x 22.45/7.88 22.45/7.88 S is empty. 22.45/7.88 Rewrite Strategy: INNERMOST 22.81/9.13 EOF