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