32.34/9.92 WORST_CASE(Omega(n^1), O(n^1)) 32.34/9.94 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 32.34/9.94 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 32.34/9.94 32.34/9.94 32.34/9.94 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 32.34/9.94 32.34/9.94 (0) CpxTRS 32.34/9.94 (1) NestedDefinedSymbolProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (2) CpxTRS 32.34/9.94 (3) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 32.34/9.94 (4) CpxTRS 32.34/9.94 (5) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] 32.34/9.94 (6) CpxWeightedTrs 32.34/9.94 (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 32.34/9.94 (8) CpxTypedWeightedTrs 32.34/9.94 (9) CompletionProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (10) CpxTypedWeightedCompleteTrs 32.34/9.94 (11) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] 32.34/9.94 (12) CpxTypedWeightedCompleteTrs 32.34/9.94 (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (14) CpxRNTS 32.34/9.94 (15) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] 32.34/9.94 (16) CpxRNTS 32.34/9.94 (17) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] 32.34/9.94 (18) CpxRNTS 32.34/9.94 (19) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (20) CpxRNTS 32.34/9.94 (21) IntTrsBoundProof [UPPER BOUND(ID), 273 ms] 32.34/9.94 (22) CpxRNTS 32.34/9.94 (23) IntTrsBoundProof [UPPER BOUND(ID), 86 ms] 32.34/9.94 (24) CpxRNTS 32.34/9.94 (25) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (26) CpxRNTS 32.34/9.94 (27) IntTrsBoundProof [UPPER BOUND(ID), 264 ms] 32.34/9.94 (28) CpxRNTS 32.34/9.94 (29) IntTrsBoundProof [UPPER BOUND(ID), 73 ms] 32.34/9.94 (30) CpxRNTS 32.34/9.94 (31) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (32) CpxRNTS 32.34/9.94 (33) IntTrsBoundProof [UPPER BOUND(ID), 465 ms] 32.34/9.94 (34) CpxRNTS 32.34/9.94 (35) IntTrsBoundProof [UPPER BOUND(ID), 83 ms] 32.34/9.94 (36) CpxRNTS 32.34/9.94 (37) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 32.34/9.94 (38) CpxRNTS 32.34/9.94 (39) IntTrsBoundProof [UPPER BOUND(ID), 140 ms] 32.34/9.94 (40) CpxRNTS 32.34/9.94 (41) IntTrsBoundProof [UPPER BOUND(ID), 52 ms] 32.34/9.94 (42) CpxRNTS 32.34/9.94 (43) ResultPropagationProof [UPPER BOUND(ID), 1 ms] 32.34/9.94 (44) CpxRNTS 32.34/9.94 (45) IntTrsBoundProof [UPPER BOUND(ID), 361 ms] 32.34/9.94 (46) CpxRNTS 32.34/9.94 (47) IntTrsBoundProof [UPPER BOUND(ID), 105 ms] 32.34/9.94 (48) CpxRNTS 32.34/9.94 (49) FinalProof [FINISHED, 0 ms] 32.34/9.94 (50) BOUNDS(1, n^1) 32.34/9.94 (51) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 32.34/9.94 (52) TRS for Loop Detection 32.34/9.94 (53) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 32.34/9.94 (54) BEST 32.34/9.94 (55) proven lower bound 32.34/9.94 (56) LowerBoundPropagationProof [FINISHED, 0 ms] 32.34/9.94 (57) BOUNDS(n^1, INF) 32.34/9.94 (58) TRS for Loop Detection 32.34/9.94 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (0) 32.34/9.94 Obligation: 32.34/9.94 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 32.34/9.94 32.34/9.94 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) 32.34/9.94 ++(x, nil) -> x 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) 32.34/9.94 null(nil) -> true 32.34/9.94 null(g(x, y)) -> false 32.34/9.94 mem(nil, y) -> false 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) 32.34/9.94 mem(x, max(x)) -> not(null(x)) 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) 32.34/9.94 32.34/9.94 S is empty. 32.34/9.94 Rewrite Strategy: FULL 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (1) NestedDefinedSymbolProof (UPPER BOUND(ID)) 32.34/9.94 The TRS does not nest defined symbols. 32.34/9.94 Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: 32.34/9.94 mem(x, max(x)) -> not(null(x)) 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (2) 32.34/9.94 Obligation: 32.34/9.94 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 32.34/9.94 32.34/9.94 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) 32.34/9.94 ++(x, nil) -> x 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) 32.34/9.94 null(nil) -> true 32.34/9.94 null(g(x, y)) -> false 32.34/9.94 mem(nil, y) -> false 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) 32.34/9.94 32.34/9.94 S is empty. 32.34/9.94 Rewrite Strategy: FULL 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (3) RcToIrcProof (BOTH BOUNDS(ID, ID)) 32.34/9.94 Converted rc-obligation to irc-obligation. 32.34/9.94 32.34/9.94 As the TRS does not nest defined symbols, we have rc = irc. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (4) 32.34/9.94 Obligation: 32.34/9.94 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 32.34/9.94 32.34/9.94 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) 32.34/9.94 ++(x, nil) -> x 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) 32.34/9.94 null(nil) -> true 32.34/9.94 null(g(x, y)) -> false 32.34/9.94 mem(nil, y) -> false 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) 32.34/9.94 32.34/9.94 S is empty. 32.34/9.94 Rewrite Strategy: INNERMOST 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (5) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) 32.34/9.94 Transformed relative TRS to weighted TRS 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (6) 32.34/9.94 Obligation: 32.34/9.94 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). 32.34/9.94 32.34/9.94 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) [1] 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) [1] 32.34/9.94 ++(x, nil) -> x [1] 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) [1] 32.34/9.94 null(nil) -> true [1] 32.34/9.94 null(g(x, y)) -> false [1] 32.34/9.94 mem(nil, y) -> false [1] 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) [1] 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) [1] 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) [1] 32.34/9.94 32.34/9.94 Rewrite Strategy: INNERMOST 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 32.34/9.94 Infered types. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (8) 32.34/9.94 Obligation: 32.34/9.94 Runtime Complexity Weighted TRS with Types. 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) [1] 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) [1] 32.34/9.94 ++(x, nil) -> x [1] 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) [1] 32.34/9.94 null(nil) -> true [1] 32.34/9.94 null(g(x, y)) -> false [1] 32.34/9.94 mem(nil, y) -> false [1] 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) [1] 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) [1] 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) [1] 32.34/9.94 32.34/9.94 The TRS has the following type information: 32.34/9.94 f :: max':u -> nil:g -> nil:g 32.34/9.94 nil :: nil:g 32.34/9.94 g :: nil:g -> max':u -> nil:g 32.34/9.94 ++ :: nil:g -> nil:g -> nil:g 32.34/9.94 null :: nil:g -> true:false:or 32.34/9.94 true :: true:false:or 32.34/9.94 false :: true:false:or 32.34/9.94 mem :: nil:g -> a -> true:false:or 32.34/9.94 or :: = -> true:false:or -> true:false:or 32.34/9.94 = :: max':u -> a -> = 32.34/9.94 max :: nil:g -> max':u 32.34/9.94 max' :: max':u -> max':u -> max':u 32.34/9.94 u :: max':u 32.34/9.94 32.34/9.94 Rewrite Strategy: INNERMOST 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (9) CompletionProof (UPPER BOUND(ID)) 32.34/9.94 The transformation into a RNTS is sound, since: 32.34/9.94 32.34/9.94 (a) The obligation is a constructor system where every type has a constant constructor, 32.34/9.94 32.34/9.94 (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: 32.34/9.94 32.34/9.94 f_2 32.34/9.94 ++_2 32.34/9.94 null_1 32.34/9.94 mem_2 32.34/9.94 max_1 32.34/9.94 32.34/9.94 (c) The following functions are completely defined: 32.34/9.94 none 32.34/9.94 32.34/9.94 Due to the following rules being added: 32.34/9.94 none 32.34/9.94 32.34/9.94 And the following fresh constants: const, const1 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (10) 32.34/9.94 Obligation: 32.34/9.94 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 32.34/9.94 32.34/9.94 Runtime Complexity Weighted TRS with Types. 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) [1] 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) [1] 32.34/9.94 ++(x, nil) -> x [1] 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) [1] 32.34/9.94 null(nil) -> true [1] 32.34/9.94 null(g(x, y)) -> false [1] 32.34/9.94 mem(nil, y) -> false [1] 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) [1] 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) [1] 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) [1] 32.34/9.94 32.34/9.94 The TRS has the following type information: 32.34/9.94 f :: max':u -> nil:g -> nil:g 32.34/9.94 nil :: nil:g 32.34/9.94 g :: nil:g -> max':u -> nil:g 32.34/9.94 ++ :: nil:g -> nil:g -> nil:g 32.34/9.94 null :: nil:g -> true:false:or 32.34/9.94 true :: true:false:or 32.34/9.94 false :: true:false:or 32.34/9.94 mem :: nil:g -> a -> true:false:or 32.34/9.94 or :: = -> true:false:or -> true:false:or 32.34/9.94 = :: max':u -> a -> = 32.34/9.94 max :: nil:g -> max':u 32.34/9.94 max' :: max':u -> max':u -> max':u 32.34/9.94 u :: max':u 32.34/9.94 const :: a 32.34/9.94 const1 :: = 32.34/9.94 32.34/9.94 Rewrite Strategy: INNERMOST 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (11) NarrowingProof (BOTH BOUNDS(ID, ID)) 32.34/9.94 Narrowed the inner basic terms of all right-hand sides by a single narrowing step. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (12) 32.34/9.94 Obligation: 32.34/9.94 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 32.34/9.94 32.34/9.94 Runtime Complexity Weighted TRS with Types. 32.34/9.94 The TRS R consists of the following rules: 32.34/9.94 32.34/9.94 f(x, nil) -> g(nil, x) [1] 32.34/9.94 f(x, g(y, z)) -> g(f(x, y), z) [1] 32.34/9.94 ++(x, nil) -> x [1] 32.34/9.94 ++(x, g(y, z)) -> g(++(x, y), z) [1] 32.34/9.94 null(nil) -> true [1] 32.34/9.94 null(g(x, y)) -> false [1] 32.34/9.94 mem(nil, y) -> false [1] 32.34/9.94 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) [1] 32.34/9.94 max(g(g(nil, x), y)) -> max'(x, y) [1] 32.34/9.94 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) [1] 32.34/9.94 32.34/9.94 The TRS has the following type information: 32.34/9.94 f :: max':u -> nil:g -> nil:g 32.34/9.94 nil :: nil:g 32.34/9.94 g :: nil:g -> max':u -> nil:g 32.34/9.94 ++ :: nil:g -> nil:g -> nil:g 32.34/9.94 null :: nil:g -> true:false:or 32.34/9.94 true :: true:false:or 32.34/9.94 false :: true:false:or 32.34/9.94 mem :: nil:g -> a -> true:false:or 32.34/9.94 or :: = -> true:false:or -> true:false:or 32.34/9.94 = :: max':u -> a -> = 32.34/9.94 max :: nil:g -> max':u 32.34/9.94 max' :: max':u -> max':u -> max':u 32.34/9.94 u :: max':u 32.34/9.94 const :: a 32.34/9.94 const1 :: = 32.34/9.94 32.34/9.94 Rewrite Strategy: INNERMOST 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) 32.34/9.94 Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. 32.34/9.94 The constant constructors are abstracted as follows: 32.34/9.94 32.34/9.94 nil => 0 32.34/9.94 true => 1 32.34/9.94 false => 0 32.34/9.94 u => 0 32.34/9.94 const => 0 32.34/9.94 const1 => 0 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (14) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> x :|: z'' = 0, z' = x, x >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(x, y) + z :|: z >= 0, z' = x, x >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(x, y) + z :|: z >= 0, z' = x, x >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + x :|: z'' = 0, z' = x, x >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' = y, y >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 1 }-> 1 + (1 + y + z) + mem(x, z) :|: z'' = z, z >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (15) SimplificationProof (BOTH BOUNDS(ID, ID)) 32.34/9.94 Simplified the RNTS by moving equalities from the constraints into the right-hand sides. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (16) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 1 }-> 1 + (1 + y + z'') + mem(x, z'') :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (17) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) 32.34/9.94 Found the following analysis order by SCC decomposition: 32.34/9.94 32.34/9.94 { mem } 32.34/9.94 { max } 32.34/9.94 { f } 32.34/9.94 { null } 32.34/9.94 { ++ } 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (18) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 1 }-> 1 + (1 + y + z'') + mem(x, z'') :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {mem}, {max}, {f}, {null}, {++} 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (19) ResultPropagationProof (UPPER BOUND(ID)) 32.34/9.94 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (20) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 1 }-> 1 + (1 + y + z'') + mem(x, z'') :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {mem}, {max}, {f}, {null}, {++} 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (21) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.94 32.34/9.94 Computed SIZE bound using CoFloCo for: mem 32.34/9.94 after applying outer abstraction to obtain an ITS, 32.34/9.94 resulting in: O(n^2) with polynomial bound: z' + z'*z'' + z'^2 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (22) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 1 }-> 1 + (1 + y + z'') + mem(x, z'') :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {mem}, {max}, {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: ?, size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (23) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.94 32.34/9.94 Computed RUNTIME bound using CoFloCo for: mem 32.34/9.94 after applying outer abstraction to obtain an ITS, 32.34/9.94 resulting in: O(n^1) with polynomial bound: 1 + z' 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (24) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 1 }-> 1 + (1 + y + z'') + mem(x, z'') :|: z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {max}, {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (25) ResultPropagationProof (UPPER BOUND(ID)) 32.34/9.94 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (26) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {max}, {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (27) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.94 32.34/9.94 Computed SIZE bound using KoAT for: max 32.34/9.94 after applying outer abstraction to obtain an ITS, 32.34/9.94 resulting in: O(n^1) with polynomial bound: z' 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (28) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {max}, {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 max: runtime: ?, size: O(n^1) [z'] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (29) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.94 32.34/9.94 Computed RUNTIME bound using KoAT for: max 32.34/9.94 after applying outer abstraction to obtain an ITS, 32.34/9.94 resulting in: O(n^1) with polynomial bound: 1 + z' 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (30) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + max(1 + (1 + x + y) + z) + 0 :|: z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (31) ResultPropagationProof (UPPER BOUND(ID)) 32.34/9.94 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (32) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (33) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.94 32.34/9.94 Computed SIZE bound using CoFloCo for: f 32.34/9.94 after applying outer abstraction to obtain an ITS, 32.34/9.94 resulting in: O(n^1) with polynomial bound: 1 + z' + z'' 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (34) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {f}, {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.94 f: runtime: ?, size: O(n^1) [1 + z' + z''] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (35) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.94 32.34/9.94 Computed RUNTIME bound using CoFloCo for: f 32.34/9.94 after applying outer abstraction to obtain an ITS, 32.34/9.94 resulting in: O(n^1) with polynomial bound: 1 + z'' 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (36) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + f(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.94 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.94 32.34/9.94 Function symbols to be analyzed: {null}, {++} 32.34/9.94 Previous analysis results are: 32.34/9.94 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.94 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.94 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.94 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (37) ResultPropagationProof (UPPER BOUND(ID)) 32.34/9.94 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 32.34/9.94 ---------------------------------------- 32.34/9.94 32.34/9.94 (38) 32.34/9.94 Obligation: 32.34/9.94 Complexity RNTS consisting of the following rules: 32.34/9.94 32.34/9.94 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.94 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 2 + y }-> 1 + s'' + z :|: s'' >= 0, s'' <= z' + y + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.94 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.94 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.94 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.94 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.94 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.95 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 32.34/9.95 Function symbols to be analyzed: {null}, {++} 32.34/9.95 Previous analysis results are: 32.34/9.95 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.95 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.95 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (39) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.95 32.34/9.95 Computed SIZE bound using CoFloCo for: null 32.34/9.95 after applying outer abstraction to obtain an ITS, 32.34/9.95 resulting in: O(1) with polynomial bound: 1 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (40) 32.34/9.95 Obligation: 32.34/9.95 Complexity RNTS consisting of the following rules: 32.34/9.95 32.34/9.95 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.95 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 2 + y }-> 1 + s'' + z :|: s'' >= 0, s'' <= z' + y + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.95 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.95 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.95 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.95 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.95 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 32.34/9.95 Function symbols to be analyzed: {null}, {++} 32.34/9.95 Previous analysis results are: 32.34/9.95 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.95 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.95 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.95 null: runtime: ?, size: O(1) [1] 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (41) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.95 32.34/9.95 Computed RUNTIME bound using CoFloCo for: null 32.34/9.95 after applying outer abstraction to obtain an ITS, 32.34/9.95 resulting in: O(1) with polynomial bound: 1 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (42) 32.34/9.95 Obligation: 32.34/9.95 Complexity RNTS consisting of the following rules: 32.34/9.95 32.34/9.95 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.95 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 2 + y }-> 1 + s'' + z :|: s'' >= 0, s'' <= z' + y + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.95 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.95 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.95 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.95 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.95 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 32.34/9.95 Function symbols to be analyzed: {++} 32.34/9.95 Previous analysis results are: 32.34/9.95 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.95 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.95 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.95 null: runtime: O(1) [1], size: O(1) [1] 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (43) ResultPropagationProof (UPPER BOUND(ID)) 32.34/9.95 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (44) 32.34/9.95 Obligation: 32.34/9.95 Complexity RNTS consisting of the following rules: 32.34/9.95 32.34/9.95 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.95 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 2 + y }-> 1 + s'' + z :|: s'' >= 0, s'' <= z' + y + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.95 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.95 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.95 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.95 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.95 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 32.34/9.95 Function symbols to be analyzed: {++} 32.34/9.95 Previous analysis results are: 32.34/9.95 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.95 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.95 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.95 null: runtime: O(1) [1], size: O(1) [1] 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (45) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.95 32.34/9.95 Computed SIZE bound using CoFloCo for: ++ 32.34/9.95 after applying outer abstraction to obtain an ITS, 32.34/9.95 resulting in: O(n^1) with polynomial bound: z' + z'' 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (46) 32.34/9.95 Obligation: 32.34/9.95 Complexity RNTS consisting of the following rules: 32.34/9.95 32.34/9.95 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.95 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 2 + y }-> 1 + s'' + z :|: s'' >= 0, s'' <= z' + y + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.95 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.95 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.95 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.95 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.95 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 32.34/9.95 Function symbols to be analyzed: {++} 32.34/9.95 Previous analysis results are: 32.34/9.95 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.95 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.95 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.95 null: runtime: O(1) [1], size: O(1) [1] 32.34/9.95 ++: runtime: ?, size: O(n^1) [z' + z''] 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (47) IntTrsBoundProof (UPPER BOUND(ID)) 32.34/9.95 32.34/9.95 Computed RUNTIME bound using CoFloCo for: ++ 32.34/9.95 after applying outer abstraction to obtain an ITS, 32.34/9.95 resulting in: O(n^1) with polynomial bound: 1 + z'' 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (48) 32.34/9.95 Obligation: 32.34/9.95 Complexity RNTS consisting of the following rules: 32.34/9.95 32.34/9.95 ++(z', z'') -{ 1 }-> z' :|: z'' = 0, z' >= 0 32.34/9.95 ++(z', z'') -{ 1 }-> 1 + ++(z', y) + z :|: z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 2 + y }-> 1 + s'' + z :|: s'' >= 0, s'' <= z' + y + 1, z >= 0, z' >= 0, y >= 0, z'' = 1 + y + z 32.34/9.95 f(z', z'') -{ 1 }-> 1 + 0 + z' :|: z'' = 0, z' >= 0 32.34/9.95 max(z') -{ 4 + x + y + z }-> 1 + s' + 0 :|: s' >= 0, s' <= 1 + (1 + x + y) + z, z' = 1 + (1 + (1 + x + y) + z) + 0, z >= 0, x >= 0, y >= 0 32.34/9.95 max(z') -{ 1 }-> 1 + x + y :|: z' = 1 + (1 + 0 + x) + y, x >= 0, y >= 0 32.34/9.95 mem(z', z'') -{ 1 }-> 0 :|: z'' >= 0, z' = 0 32.34/9.95 mem(z', z'') -{ 2 + x }-> 1 + (1 + y + z'') + s :|: s >= 0, s <= x * x + x * z'' + x, z'' >= 0, z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 null(z') -{ 1 }-> 1 :|: z' = 0 32.34/9.95 null(z') -{ 1 }-> 0 :|: z' = 1 + x + y, x >= 0, y >= 0 32.34/9.95 32.34/9.95 Function symbols to be analyzed: 32.34/9.95 Previous analysis results are: 32.34/9.95 mem: runtime: O(n^1) [1 + z'], size: O(n^2) [z' + z'*z'' + z'^2] 32.34/9.95 max: runtime: O(n^1) [1 + z'], size: O(n^1) [z'] 32.34/9.95 f: runtime: O(n^1) [1 + z''], size: O(n^1) [1 + z' + z''] 32.34/9.95 null: runtime: O(1) [1], size: O(1) [1] 32.34/9.95 ++: runtime: O(n^1) [1 + z''], size: O(n^1) [z' + z''] 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (49) FinalProof (FINISHED) 32.34/9.95 Computed overall runtime complexity 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (50) 32.34/9.95 BOUNDS(1, n^1) 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (51) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 32.34/9.95 Transformed a relative TRS into a decreasing-loop problem. 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (52) 32.34/9.95 Obligation: 32.34/9.95 Analyzing the following TRS for decreasing loops: 32.34/9.95 32.34/9.95 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 32.34/9.95 32.34/9.95 32.34/9.95 The TRS R consists of the following rules: 32.34/9.95 32.34/9.95 f(x, nil) -> g(nil, x) 32.34/9.95 f(x, g(y, z)) -> g(f(x, y), z) 32.34/9.95 ++(x, nil) -> x 32.34/9.95 ++(x, g(y, z)) -> g(++(x, y), z) 32.34/9.95 null(nil) -> true 32.34/9.95 null(g(x, y)) -> false 32.34/9.95 mem(nil, y) -> false 32.34/9.95 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) 32.34/9.95 mem(x, max(x)) -> not(null(x)) 32.34/9.95 max(g(g(nil, x), y)) -> max'(x, y) 32.34/9.95 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) 32.34/9.95 32.34/9.95 S is empty. 32.34/9.95 Rewrite Strategy: FULL 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (53) DecreasingLoopProof (LOWER BOUND(ID)) 32.34/9.95 The following loop(s) give(s) rise to the lower bound Omega(n^1): 32.34/9.95 32.34/9.95 The rewrite sequence 32.34/9.95 32.34/9.95 ++(x, g(y, z)) ->^+ g(++(x, y), z) 32.34/9.95 32.34/9.95 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 32.34/9.95 32.34/9.95 The pumping substitution is [y / g(y, z)]. 32.34/9.95 32.34/9.95 The result substitution is [ ]. 32.34/9.95 32.34/9.95 32.34/9.95 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (54) 32.34/9.95 Complex Obligation (BEST) 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (55) 32.34/9.95 Obligation: 32.34/9.95 Proved the lower bound n^1 for the following obligation: 32.34/9.95 32.34/9.95 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 32.34/9.95 32.34/9.95 32.34/9.95 The TRS R consists of the following rules: 32.34/9.95 32.34/9.95 f(x, nil) -> g(nil, x) 32.34/9.95 f(x, g(y, z)) -> g(f(x, y), z) 32.34/9.95 ++(x, nil) -> x 32.34/9.95 ++(x, g(y, z)) -> g(++(x, y), z) 32.34/9.95 null(nil) -> true 32.34/9.95 null(g(x, y)) -> false 32.34/9.95 mem(nil, y) -> false 32.34/9.95 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) 32.34/9.95 mem(x, max(x)) -> not(null(x)) 32.34/9.95 max(g(g(nil, x), y)) -> max'(x, y) 32.34/9.95 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) 32.34/9.95 32.34/9.95 S is empty. 32.34/9.95 Rewrite Strategy: FULL 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (56) LowerBoundPropagationProof (FINISHED) 32.34/9.95 Propagated lower bound. 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (57) 32.34/9.95 BOUNDS(n^1, INF) 32.34/9.95 32.34/9.95 ---------------------------------------- 32.34/9.95 32.34/9.95 (58) 32.34/9.95 Obligation: 32.34/9.95 Analyzing the following TRS for decreasing loops: 32.34/9.95 32.34/9.95 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 32.34/9.95 32.34/9.95 32.34/9.95 The TRS R consists of the following rules: 32.34/9.95 32.34/9.95 f(x, nil) -> g(nil, x) 32.34/9.95 f(x, g(y, z)) -> g(f(x, y), z) 32.34/9.95 ++(x, nil) -> x 32.34/9.95 ++(x, g(y, z)) -> g(++(x, y), z) 32.34/9.95 null(nil) -> true 32.34/9.95 null(g(x, y)) -> false 32.34/9.95 mem(nil, y) -> false 32.34/9.95 mem(g(x, y), z) -> or(=(y, z), mem(x, z)) 32.34/9.95 mem(x, max(x)) -> not(null(x)) 32.34/9.95 max(g(g(nil, x), y)) -> max'(x, y) 32.34/9.95 max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) 32.34/9.95 32.34/9.95 S is empty. 32.34/9.95 Rewrite Strategy: FULL 32.34/9.99 EOF