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