329.21/291.53 WORST_CASE(?, O(n^2)) 329.21/291.55 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 329.21/291.55 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 329.21/291.55 329.21/291.55 329.21/291.55 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^2). 329.21/291.55 329.21/291.55 (0) CpxTRS 329.21/291.55 (1) DependencyGraphProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (2) CpxTRS 329.21/291.55 (3) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (4) CpxRelTRS 329.21/291.55 (5) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 329.21/291.55 (6) CpxRelTRS 329.21/291.55 (7) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] 329.21/291.55 (8) CpxWeightedTrs 329.21/291.55 (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 329.21/291.55 (10) CpxTypedWeightedTrs 329.21/291.55 (11) CompletionProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (12) CpxTypedWeightedCompleteTrs 329.21/291.55 (13) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] 329.21/291.55 (14) CpxTypedWeightedCompleteTrs 329.21/291.55 (15) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 5 ms] 329.21/291.55 (16) CpxRNTS 329.21/291.55 (17) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] 329.21/291.55 (18) CpxRNTS 329.21/291.55 (19) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] 329.21/291.55 (20) CpxRNTS 329.21/291.55 (21) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (22) CpxRNTS 329.21/291.55 (23) IntTrsBoundProof [UPPER BOUND(ID), 589 ms] 329.21/291.55 (24) CpxRNTS 329.21/291.55 (25) IntTrsBoundProof [UPPER BOUND(ID), 141 ms] 329.21/291.55 (26) CpxRNTS 329.21/291.55 (27) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (28) CpxRNTS 329.21/291.55 (29) IntTrsBoundProof [UPPER BOUND(ID), 233 ms] 329.21/291.55 (30) CpxRNTS 329.21/291.55 (31) IntTrsBoundProof [UPPER BOUND(ID), 26 ms] 329.21/291.55 (32) CpxRNTS 329.21/291.55 (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (34) CpxRNTS 329.21/291.55 (35) IntTrsBoundProof [UPPER BOUND(ID), 130 ms] 329.21/291.55 (36) CpxRNTS 329.21/291.55 (37) IntTrsBoundProof [UPPER BOUND(ID), 15 ms] 329.21/291.55 (38) CpxRNTS 329.21/291.55 (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 329.21/291.55 (40) CpxRNTS 329.21/291.55 (41) IntTrsBoundProof [UPPER BOUND(ID), 820 ms] 329.21/291.55 (42) CpxRNTS 329.21/291.55 (43) IntTrsBoundProof [UPPER BOUND(ID), 511 ms] 329.21/291.55 (44) CpxRNTS 329.21/291.55 (45) FinalProof [FINISHED, 0 ms] 329.21/291.55 (46) BOUNDS(1, n^2) 329.21/291.55 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (0) 329.21/291.55 Obligation: 329.21/291.55 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^2). 329.21/291.55 329.21/291.55 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) 329.21/291.55 g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) 329.21/291.55 i(f(x, h(y))) -> y 329.21/291.55 i(h2(s(x), y, h1(x, z))) -> z 329.21/291.55 k(h(x)) -> h1(0, x) 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) 329.21/291.55 329.21/291.55 S is empty. 329.21/291.55 Rewrite Strategy: FULL 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (1) DependencyGraphProof (UPPER BOUND(ID)) 329.21/291.55 The following rules are not reachable from basic terms in the dependency graph and can be removed: 329.21/291.55 329.21/291.55 i(f(x, h(y))) -> y 329.21/291.55 i(h2(s(x), y, h1(x, z))) -> z 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (2) 329.21/291.55 Obligation: 329.21/291.55 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^2). 329.21/291.55 329.21/291.55 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) 329.21/291.55 g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) 329.21/291.55 k(h(x)) -> h1(0, x) 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) 329.21/291.55 329.21/291.55 S is empty. 329.21/291.55 Rewrite Strategy: FULL 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (3) NonCtorToCtorProof (UPPER BOUND(ID)) 329.21/291.55 transformed non-ctor to ctor-system 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (4) 329.21/291.55 Obligation: 329.21/291.55 The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(1, n^2). 329.21/291.55 329.21/291.55 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) 329.21/291.55 k(h(x)) -> h1(0, x) 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) 329.21/291.55 g(c_h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) 329.21/291.55 329.21/291.55 The (relative) TRS S consists of the following rules: 329.21/291.55 329.21/291.55 h2(x0, x1, x2) -> c_h2(x0, x1, x2) 329.21/291.55 329.21/291.55 Rewrite Strategy: FULL 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (5) RcToIrcProof (BOTH BOUNDS(ID, ID)) 329.21/291.55 Converted rc-obligation to irc-obligation. 329.21/291.55 329.21/291.55 As the TRS is a non-duplicating overlay system, we have rc = irc. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (6) 329.21/291.55 Obligation: 329.21/291.55 The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^2). 329.21/291.55 329.21/291.55 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) 329.21/291.55 k(h(x)) -> h1(0, x) 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) 329.21/291.55 g(c_h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) 329.21/291.55 329.21/291.55 The (relative) TRS S consists of the following rules: 329.21/291.55 329.21/291.55 h2(x0, x1, x2) -> c_h2(x0, x1, x2) 329.21/291.55 329.21/291.55 Rewrite Strategy: INNERMOST 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (7) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) 329.21/291.55 Transformed relative TRS to weighted TRS 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (8) 329.21/291.55 Obligation: 329.21/291.55 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). 329.21/291.55 329.21/291.55 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) [1] 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) [1] 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) [1] 329.21/291.55 k(h(x)) -> h1(0, x) [1] 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) [1] 329.21/291.55 g(c_h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) [1] 329.21/291.55 h2(x0, x1, x2) -> c_h2(x0, x1, x2) [0] 329.21/291.55 329.21/291.55 Rewrite Strategy: INNERMOST 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 329.21/291.55 Infered types. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (10) 329.21/291.55 Obligation: 329.21/291.55 Runtime Complexity Weighted TRS with Types. 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) [1] 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) [1] 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) [1] 329.21/291.55 k(h(x)) -> h1(0, x) [1] 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) [1] 329.21/291.55 g(c_h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) [1] 329.21/291.55 h2(x0, x1, x2) -> c_h2(x0, x1, x2) [0] 329.21/291.55 329.21/291.55 The TRS has the following type information: 329.21/291.55 f :: j -> h1:h -> c_h2 329.21/291.55 j :: j -> h1:h -> j 329.21/291.55 g :: c_h2 -> c_h2 329.21/291.55 k :: h1:h -> h1:h 329.21/291.55 h1 :: 0:s -> a -> h1:h 329.21/291.55 h2 :: 0:s -> j -> h1:h -> c_h2 329.21/291.55 0 :: 0:s 329.21/291.55 s :: 0:s -> 0:s 329.21/291.55 h :: a -> h1:h 329.21/291.55 c_h2 :: 0:s -> j -> h1:h -> c_h2 329.21/291.55 329.21/291.55 Rewrite Strategy: INNERMOST 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (11) CompletionProof (UPPER BOUND(ID)) 329.21/291.55 The transformation into a RNTS is sound, since: 329.21/291.55 329.21/291.55 (a) The obligation is a constructor system where every type has a constant constructor, 329.21/291.55 329.21/291.55 (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: 329.21/291.55 none 329.21/291.55 329.21/291.55 (c) The following functions are completely defined: 329.21/291.55 329.21/291.55 f_2 329.21/291.55 k_1 329.21/291.55 g_1 329.21/291.55 h2_3 329.21/291.55 329.21/291.55 Due to the following rules being added: 329.21/291.55 329.21/291.55 h2(v0, v1, v2) -> const [0] 329.21/291.55 f(v0, v1) -> const [0] 329.21/291.55 k(v0) -> const2 [0] 329.21/291.55 g(v0) -> const [0] 329.21/291.55 329.21/291.55 And the following fresh constants: const, const2, const1, const3 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (12) 329.21/291.55 Obligation: 329.21/291.55 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 329.21/291.55 329.21/291.55 Runtime Complexity Weighted TRS with Types. 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, y), y) -> g(f(x, k(y))) [1] 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) [1] 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) [1] 329.21/291.55 k(h(x)) -> h1(0, x) [1] 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) [1] 329.21/291.55 g(c_h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) [1] 329.21/291.55 h2(x0, x1, x2) -> c_h2(x0, x1, x2) [0] 329.21/291.55 h2(v0, v1, v2) -> const [0] 329.21/291.55 f(v0, v1) -> const [0] 329.21/291.55 k(v0) -> const2 [0] 329.21/291.55 g(v0) -> const [0] 329.21/291.55 329.21/291.55 The TRS has the following type information: 329.21/291.55 f :: j -> h1:h:const2 -> c_h2:const 329.21/291.55 j :: j -> h1:h:const2 -> j 329.21/291.55 g :: c_h2:const -> c_h2:const 329.21/291.55 k :: h1:h:const2 -> h1:h:const2 329.21/291.55 h1 :: 0:s -> a -> h1:h:const2 329.21/291.55 h2 :: 0:s -> j -> h1:h:const2 -> c_h2:const 329.21/291.55 0 :: 0:s 329.21/291.55 s :: 0:s -> 0:s 329.21/291.55 h :: a -> h1:h:const2 329.21/291.55 c_h2 :: 0:s -> j -> h1:h:const2 -> c_h2:const 329.21/291.55 const :: c_h2:const 329.21/291.55 const2 :: h1:h:const2 329.21/291.55 const1 :: j 329.21/291.55 const3 :: a 329.21/291.55 329.21/291.55 Rewrite Strategy: INNERMOST 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (13) NarrowingProof (BOTH BOUNDS(ID, ID)) 329.21/291.55 Narrowed the inner basic terms of all right-hand sides by a single narrowing step. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (14) 329.21/291.55 Obligation: 329.21/291.55 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 329.21/291.55 329.21/291.55 Runtime Complexity Weighted TRS with Types. 329.21/291.55 The TRS R consists of the following rules: 329.21/291.55 329.21/291.55 f(j(x, h(x')), h(x')) -> g(f(x, h1(0, x'))) [2] 329.21/291.55 f(j(x, h1(x'', y')), h1(x'', y')) -> g(f(x, h1(s(x''), y'))) [2] 329.21/291.55 f(j(x, y), y) -> g(f(x, const2)) [1] 329.21/291.55 f(x, h1(y, z)) -> h2(0, x, h1(y, z)) [1] 329.21/291.55 h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)) [1] 329.21/291.55 k(h(x)) -> h1(0, x) [1] 329.21/291.55 k(h1(x, y)) -> h1(s(x), y) [1] 329.21/291.55 g(c_h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)) [1] 329.21/291.55 h2(x0, x1, x2) -> c_h2(x0, x1, x2) [0] 329.21/291.55 h2(v0, v1, v2) -> const [0] 329.21/291.55 f(v0, v1) -> const [0] 329.21/291.55 k(v0) -> const2 [0] 329.21/291.55 g(v0) -> const [0] 329.21/291.55 329.21/291.55 The TRS has the following type information: 329.21/291.55 f :: j -> h1:h:const2 -> c_h2:const 329.21/291.55 j :: j -> h1:h:const2 -> j 329.21/291.55 g :: c_h2:const -> c_h2:const 329.21/291.55 k :: h1:h:const2 -> h1:h:const2 329.21/291.55 h1 :: 0:s -> a -> h1:h:const2 329.21/291.55 h2 :: 0:s -> j -> h1:h:const2 -> c_h2:const 329.21/291.55 0 :: 0:s 329.21/291.55 s :: 0:s -> 0:s 329.21/291.55 h :: a -> h1:h:const2 329.21/291.55 c_h2 :: 0:s -> j -> h1:h:const2 -> c_h2:const 329.21/291.55 const :: c_h2:const 329.21/291.55 const2 :: h1:h:const2 329.21/291.55 const1 :: j 329.21/291.55 const3 :: a 329.21/291.55 329.21/291.55 Rewrite Strategy: INNERMOST 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (15) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) 329.21/291.55 Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. 329.21/291.55 The constant constructors are abstracted as follows: 329.21/291.55 329.21/291.55 0 => 0 329.21/291.55 const => 0 329.21/291.55 const2 => 0 329.21/291.55 const1 => 0 329.21/291.55 const3 => 0 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (16) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 }-> h2(0, x, 1 + y + z) :|: z >= 0, z' = x, x >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z'' = y, z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + x')) :|: z' = 1 + x + (1 + x'), z'' = 1 + x', x >= 0, x' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z'' = v1, z' = v0 329.21/291.55 g(z') -{ 1 }-> h2(1 + x, y, 1 + z + u) :|: z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 329.21/291.55 h2(z', z'', z1) -{ 1 }-> h2(1 + x, y, 1 + (1 + z) + u) :|: z >= 0, z' = x, x >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: v0 >= 0, z1 = v2, v1 >= 0, z'' = v1, v2 >= 0, z' = v0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + x0 + x1 + x2 :|: z'' = x1, x0 >= 0, x1 >= 0, z1 = x2, x2 >= 0, z' = x0 329.21/291.55 k(z') -{ 0 }-> 0 :|: v0 >= 0, z' = v0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + x :|: z' = 1 + x, x >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (17) SimplificationProof (BOTH BOUNDS(ID, ID)) 329.21/291.55 Simplified the RNTS by moving equalities from the constraints into the right-hand sides. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (18) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 }-> h2(0, z', 1 + y + z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 }-> h2(1 + x, y, 1 + z + u) :|: z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 }-> h2(1 + z', y, 1 + (1 + z) + u) :|: z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) 329.21/291.55 Found the following analysis order by SCC decomposition: 329.21/291.55 329.21/291.55 { h2 } 329.21/291.55 { k } 329.21/291.55 { g } 329.21/291.55 { f } 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (20) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 }-> h2(0, z', 1 + y + z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 }-> h2(1 + x, y, 1 + z + u) :|: z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 }-> h2(1 + z', y, 1 + (1 + z) + u) :|: z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {h2}, {k}, {g}, {f} 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (21) ResultPropagationProof (UPPER BOUND(ID)) 329.21/291.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (22) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 }-> h2(0, z', 1 + y + z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 }-> h2(1 + x, y, 1 + z + u) :|: z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 }-> h2(1 + z', y, 1 + (1 + z) + u) :|: z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {h2}, {k}, {g}, {f} 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (23) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed SIZE bound using KoAT for: h2 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^1) with polynomial bound: 1 + z' + z'' + z1 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (24) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 }-> h2(0, z', 1 + y + z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 }-> h2(1 + x, y, 1 + z + u) :|: z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 }-> h2(1 + z', y, 1 + (1 + z) + u) :|: z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {h2}, {k}, {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: ?, size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (25) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed RUNTIME bound using KoAT for: h2 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^1) with polynomial bound: z'' 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (26) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 }-> h2(0, z', 1 + y + z) :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 }-> h2(1 + x, y, 1 + z + u) :|: z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 }-> h2(1 + z', y, 1 + (1 + z) + u) :|: z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {k}, {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (27) ResultPropagationProof (UPPER BOUND(ID)) 329.21/291.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (28) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {k}, {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (29) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed SIZE bound using CoFloCo for: k 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^1) with polynomial bound: 1 + z' 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (30) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {k}, {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: ?, size: O(n^1) [1 + z'] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (31) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed RUNTIME bound using CoFloCo for: k 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(1) with polynomial bound: 1 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (32) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (33) ResultPropagationProof (UPPER BOUND(ID)) 329.21/291.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (34) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (35) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed SIZE bound using CoFloCo for: g 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^1) with polynomial bound: 1 + z' 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (36) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {g}, {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 g: runtime: ?, size: O(n^1) [1 + z'] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (37) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed RUNTIME bound using CoFloCo for: g 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^1) with polynomial bound: 1 + z' 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (38) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 g: runtime: O(n^1) [1 + z'], size: O(n^1) [1 + z'] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (39) ResultPropagationProof (UPPER BOUND(ID)) 329.21/291.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (40) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 g: runtime: O(n^1) [1 + z'], size: O(n^1) [1 + z'] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (41) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed SIZE bound using KoAT for: f 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^1) with polynomial bound: 1 + z' + z'' 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (42) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: {f} 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 g: runtime: O(n^1) [1 + z'], size: O(n^1) [1 + z'] 329.21/291.55 f: runtime: ?, size: O(n^1) [1 + z' + z''] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (43) IntTrsBoundProof (UPPER BOUND(ID)) 329.21/291.55 329.21/291.55 Computed RUNTIME bound using CoFloCo for: f 329.21/291.55 after applying outer abstraction to obtain an ITS, 329.21/291.55 resulting in: O(n^2) with polynomial bound: 8 + 6*z' + 2*z'*z'' + z'^2 + 4*z'' + z''^2 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (44) 329.21/291.55 Obligation: 329.21/291.55 Complexity RNTS consisting of the following rules: 329.21/291.55 329.21/291.55 f(z', z'') -{ 1 + z' }-> s :|: s >= 0, s <= 0 + z' + (1 + y + z) + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 329.21/291.55 f(z', z'') -{ 1 }-> g(f(x, 0)) :|: z' = 1 + x + z'', x >= 0, z'' >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + 0 + (z'' - 1))) :|: z' = 1 + x + (1 + (z'' - 1)), x >= 0, z'' - 1 >= 0 329.21/291.55 f(z', z'') -{ 2 }-> g(f(x, 1 + (1 + x'') + y')) :|: z' = 1 + x + (1 + x'' + y'), x >= 0, z'' = 1 + x'' + y', y' >= 0, x'' >= 0 329.21/291.55 f(z', z'') -{ 0 }-> 0 :|: z' >= 0, z'' >= 0 329.21/291.55 g(z') -{ 1 + y }-> s'' :|: s'' >= 0, s'' <= 1 + x + y + (1 + z + u) + 1, z >= 0, x >= 0, y >= 0, z' = 1 + x + y + (1 + z + u), u >= 0 329.21/291.55 g(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 h2(z', z'', z1) -{ 1 + y }-> s' :|: s' >= 0, s' <= 1 + z' + y + (1 + (1 + z) + u) + 1, z >= 0, z' >= 0, y >= 0, z1 = 1 + z + u, z'' = 1 + y + (1 + z + u), u >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 0 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 h2(z', z'', z1) -{ 0 }-> 1 + z' + z'' + z1 :|: z' >= 0, z'' >= 0, z1 >= 0 329.21/291.55 k(z') -{ 0 }-> 0 :|: z' >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + 0 + (z' - 1) :|: z' - 1 >= 0 329.21/291.55 k(z') -{ 1 }-> 1 + (1 + x) + y :|: z' = 1 + x + y, x >= 0, y >= 0 329.21/291.55 329.21/291.55 Function symbols to be analyzed: 329.21/291.55 Previous analysis results are: 329.21/291.55 h2: runtime: O(n^1) [z''], size: O(n^1) [1 + z' + z'' + z1] 329.21/291.55 k: runtime: O(1) [1], size: O(n^1) [1 + z'] 329.21/291.55 g: runtime: O(n^1) [1 + z'], size: O(n^1) [1 + z'] 329.21/291.55 f: runtime: O(n^2) [8 + 6*z' + 2*z'*z'' + z'^2 + 4*z'' + z''^2], size: O(n^1) [1 + z' + z''] 329.21/291.55 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (45) FinalProof (FINISHED) 329.21/291.55 Computed overall runtime complexity 329.21/291.55 ---------------------------------------- 329.21/291.55 329.21/291.55 (46) 329.21/291.55 BOUNDS(1, n^2) 329.29/291.58 EOF