20.46/7.53 WORST_CASE(Omega(n^1), O(n^1)) 20.46/7.54 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 20.46/7.54 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 20.46/7.54 20.46/7.54 20.46/7.54 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 20.46/7.54 20.46/7.54 (0) CpxTRS 20.46/7.54 (1) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 20.46/7.54 (2) CpxTRS 20.46/7.54 (3) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] 20.46/7.54 (4) CpxWeightedTrs 20.46/7.54 (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 20.46/7.54 (6) CpxTypedWeightedTrs 20.46/7.54 (7) CompletionProof [UPPER BOUND(ID), 0 ms] 20.46/7.54 (8) CpxTypedWeightedCompleteTrs 20.46/7.54 (9) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] 20.46/7.54 (10) CpxTypedWeightedCompleteTrs 20.46/7.54 (11) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] 20.46/7.54 (12) CpxRNTS 20.46/7.54 (13) InliningProof [UPPER BOUND(ID), 125 ms] 20.46/7.54 (14) CpxRNTS 20.46/7.54 (15) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] 20.46/7.54 (16) CpxRNTS 20.46/7.54 (17) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] 20.46/7.54 (18) CpxRNTS 20.46/7.54 (19) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 20.46/7.54 (20) CpxRNTS 20.46/7.54 (21) IntTrsBoundProof [UPPER BOUND(ID), 124 ms] 20.46/7.54 (22) CpxRNTS 20.46/7.54 (23) IntTrsBoundProof [UPPER BOUND(ID), 33 ms] 20.46/7.54 (24) CpxRNTS 20.46/7.54 (25) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 20.46/7.54 (26) CpxRNTS 20.46/7.54 (27) IntTrsBoundProof [UPPER BOUND(ID), 139 ms] 20.46/7.54 (28) CpxRNTS 20.46/7.54 (29) IntTrsBoundProof [UPPER BOUND(ID), 43 ms] 20.46/7.54 (30) CpxRNTS 20.46/7.54 (31) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 20.46/7.54 (32) CpxRNTS 20.46/7.54 (33) IntTrsBoundProof [UPPER BOUND(ID), 334 ms] 20.46/7.54 (34) CpxRNTS 20.46/7.54 (35) IntTrsBoundProof [UPPER BOUND(ID), 94 ms] 20.46/7.54 (36) CpxRNTS 20.46/7.54 (37) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 20.46/7.54 (38) CpxRNTS 20.46/7.54 (39) IntTrsBoundProof [UPPER BOUND(ID), 422 ms] 20.46/7.54 (40) CpxRNTS 20.46/7.54 (41) IntTrsBoundProof [UPPER BOUND(ID), 51 ms] 20.46/7.54 (42) CpxRNTS 20.46/7.54 (43) FinalProof [FINISHED, 0 ms] 20.46/7.54 (44) BOUNDS(1, n^1) 20.46/7.54 (45) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 20.46/7.54 (46) TRS for Loop Detection 20.46/7.54 (47) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 20.46/7.54 (48) BEST 20.46/7.54 (49) proven lower bound 20.46/7.54 (50) LowerBoundPropagationProof [FINISHED, 0 ms] 20.46/7.54 (51) BOUNDS(n^1, INF) 20.46/7.54 (52) TRS for Loop Detection 20.46/7.54 20.46/7.54 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (0) 20.46/7.54 Obligation: 20.46/7.54 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 20.46/7.54 20.46/7.54 20.46/7.54 The TRS R consists of the following rules: 20.46/7.54 20.46/7.54 a__f(X, g(X), Y) -> a__f(Y, Y, Y) 20.46/7.54 a__g(b) -> c 20.46/7.54 a__b -> c 20.46/7.54 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) 20.46/7.54 mark(g(X)) -> a__g(mark(X)) 20.46/7.54 mark(b) -> a__b 20.46/7.54 mark(c) -> c 20.46/7.54 a__f(X1, X2, X3) -> f(X1, X2, X3) 20.46/7.54 a__g(X) -> g(X) 20.46/7.54 a__b -> b 20.46/7.54 20.46/7.54 S is empty. 20.46/7.54 Rewrite Strategy: FULL 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (1) RcToIrcProof (BOTH BOUNDS(ID, ID)) 20.46/7.54 Converted rc-obligation to irc-obligation. 20.46/7.54 20.46/7.54 The duplicating contexts are: 20.46/7.54 a__f(X, g(X), []) 20.46/7.54 20.46/7.54 20.46/7.54 The defined contexts are: 20.46/7.54 a__g([]) 20.46/7.54 20.46/7.54 20.46/7.54 As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (2) 20.46/7.54 Obligation: 20.46/7.54 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 20.46/7.54 20.46/7.54 20.46/7.54 The TRS R consists of the following rules: 20.46/7.54 20.46/7.54 a__f(X, g(X), Y) -> a__f(Y, Y, Y) 20.46/7.54 a__g(b) -> c 20.46/7.54 a__b -> c 20.46/7.54 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) 20.46/7.54 mark(g(X)) -> a__g(mark(X)) 20.46/7.54 mark(b) -> a__b 20.46/7.54 mark(c) -> c 20.46/7.54 a__f(X1, X2, X3) -> f(X1, X2, X3) 20.46/7.54 a__g(X) -> g(X) 20.46/7.54 a__b -> b 20.46/7.54 20.46/7.54 S is empty. 20.46/7.54 Rewrite Strategy: INNERMOST 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (3) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) 20.46/7.54 Transformed relative TRS to weighted TRS 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (4) 20.46/7.54 Obligation: 20.46/7.54 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). 20.46/7.54 20.46/7.54 20.46/7.54 The TRS R consists of the following rules: 20.46/7.54 20.46/7.54 a__f(X, g(X), Y) -> a__f(Y, Y, Y) [1] 20.46/7.54 a__g(b) -> c [1] 20.46/7.54 a__b -> c [1] 20.46/7.54 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) [1] 20.46/7.54 mark(g(X)) -> a__g(mark(X)) [1] 20.46/7.54 mark(b) -> a__b [1] 20.46/7.54 mark(c) -> c [1] 20.46/7.54 a__f(X1, X2, X3) -> f(X1, X2, X3) [1] 20.46/7.54 a__g(X) -> g(X) [1] 20.46/7.54 a__b -> b [1] 20.46/7.54 20.46/7.54 Rewrite Strategy: INNERMOST 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 20.46/7.54 Infered types. 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (6) 20.46/7.54 Obligation: 20.46/7.54 Runtime Complexity Weighted TRS with Types. 20.46/7.54 The TRS R consists of the following rules: 20.46/7.54 20.46/7.54 a__f(X, g(X), Y) -> a__f(Y, Y, Y) [1] 20.46/7.54 a__g(b) -> c [1] 20.46/7.54 a__b -> c [1] 20.46/7.54 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) [1] 20.46/7.54 mark(g(X)) -> a__g(mark(X)) [1] 20.46/7.54 mark(b) -> a__b [1] 20.46/7.54 mark(c) -> c [1] 20.46/7.54 a__f(X1, X2, X3) -> f(X1, X2, X3) [1] 20.46/7.54 a__g(X) -> g(X) [1] 20.46/7.54 a__b -> b [1] 20.46/7.54 20.46/7.54 The TRS has the following type information: 20.46/7.54 a__f :: g:b:c:f -> g:b:c:f -> g:b:c:f -> g:b:c:f 20.46/7.54 g :: g:b:c:f -> g:b:c:f 20.46/7.54 a__g :: g:b:c:f -> g:b:c:f 20.46/7.54 b :: g:b:c:f 20.46/7.54 c :: g:b:c:f 20.46/7.54 a__b :: g:b:c:f 20.46/7.54 mark :: g:b:c:f -> g:b:c:f 20.46/7.54 f :: g:b:c:f -> g:b:c:f -> g:b:c:f -> g:b:c:f 20.46/7.54 20.46/7.54 Rewrite Strategy: INNERMOST 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (7) CompletionProof (UPPER BOUND(ID)) 20.46/7.54 The transformation into a RNTS is sound, since: 20.46/7.54 20.46/7.54 (a) The obligation is a constructor system where every type has a constant constructor, 20.46/7.54 20.46/7.54 (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: 20.46/7.54 none 20.46/7.54 20.46/7.54 (c) The following functions are completely defined: 20.46/7.54 20.46/7.54 mark_1 20.46/7.54 a__b 20.46/7.54 a__f_3 20.46/7.54 a__g_1 20.46/7.54 20.46/7.54 Due to the following rules being added: 20.46/7.54 none 20.46/7.54 20.46/7.54 And the following fresh constants: none 20.46/7.54 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (8) 20.46/7.54 Obligation: 20.46/7.54 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 20.46/7.54 20.46/7.54 Runtime Complexity Weighted TRS with Types. 20.46/7.54 The TRS R consists of the following rules: 20.46/7.54 20.46/7.54 a__f(X, g(X), Y) -> a__f(Y, Y, Y) [1] 20.46/7.54 a__g(b) -> c [1] 20.46/7.54 a__b -> c [1] 20.46/7.54 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) [1] 20.46/7.54 mark(g(X)) -> a__g(mark(X)) [1] 20.46/7.54 mark(b) -> a__b [1] 20.46/7.54 mark(c) -> c [1] 20.46/7.54 a__f(X1, X2, X3) -> f(X1, X2, X3) [1] 20.46/7.54 a__g(X) -> g(X) [1] 20.46/7.54 a__b -> b [1] 20.46/7.54 20.46/7.54 The TRS has the following type information: 20.46/7.54 a__f :: g:b:c:f -> g:b:c:f -> g:b:c:f -> g:b:c:f 20.46/7.54 g :: g:b:c:f -> g:b:c:f 20.46/7.54 a__g :: g:b:c:f -> g:b:c:f 20.46/7.54 b :: g:b:c:f 20.46/7.54 c :: g:b:c:f 20.46/7.54 a__b :: g:b:c:f 20.46/7.54 mark :: g:b:c:f -> g:b:c:f 20.46/7.54 f :: g:b:c:f -> g:b:c:f -> g:b:c:f -> g:b:c:f 20.46/7.54 20.46/7.54 Rewrite Strategy: INNERMOST 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (9) NarrowingProof (BOTH BOUNDS(ID, ID)) 20.46/7.54 Narrowed the inner basic terms of all right-hand sides by a single narrowing step. 20.46/7.54 ---------------------------------------- 20.46/7.54 20.46/7.54 (10) 20.46/7.54 Obligation: 20.46/7.54 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 20.46/7.54 20.46/7.54 Runtime Complexity Weighted TRS with Types. 20.46/7.54 The TRS R consists of the following rules: 20.46/7.54 20.46/7.54 a__f(X, g(X), Y) -> a__f(Y, Y, Y) [1] 20.46/7.54 a__g(b) -> c [1] 20.46/7.54 a__b -> c [1] 20.46/7.54 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) [1] 20.46/7.54 mark(g(f(X1', X2', X3'))) -> a__g(a__f(X1', X2', X3')) [2] 20.46/7.54 mark(g(g(X'))) -> a__g(a__g(mark(X'))) [2] 20.46/7.54 mark(g(b)) -> a__g(a__b) [2] 20.46/7.54 mark(g(c)) -> a__g(c) [2] 20.46/7.54 mark(b) -> a__b [1] 20.46/7.54 mark(c) -> c [1] 20.46/7.54 a__f(X1, X2, X3) -> f(X1, X2, X3) [1] 20.46/7.54 a__g(X) -> g(X) [1] 20.46/7.54 a__b -> b [1] 20.46/7.54 20.46/7.54 The TRS has the following type information: 20.46/7.55 a__f :: g:b:c:f -> g:b:c:f -> g:b:c:f -> g:b:c:f 20.46/7.55 g :: g:b:c:f -> g:b:c:f 20.46/7.55 a__g :: g:b:c:f -> g:b:c:f 20.46/7.55 b :: g:b:c:f 20.46/7.55 c :: g:b:c:f 20.46/7.55 a__b :: g:b:c:f 20.46/7.55 mark :: g:b:c:f -> g:b:c:f 20.46/7.55 f :: g:b:c:f -> g:b:c:f -> g:b:c:f -> g:b:c:f 20.46/7.55 20.46/7.55 Rewrite Strategy: INNERMOST 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (11) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) 20.46/7.55 Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. 20.46/7.55 The constant constructors are abstracted as follows: 20.46/7.55 20.46/7.55 b => 0 20.46/7.55 c => 1 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (12) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(Y, Y, Y) :|: Y >= 0, z'' = Y, z' = 1 + X, X >= 0, z = X 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + X1 + X2 + X3 :|: X1 >= 0, X3 >= 0, X2 >= 0, z = X1, z' = X2, z'' = X3 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + X :|: X >= 0, z = X 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(X'))) :|: X' >= 0, z = 1 + (1 + X') 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 2 }-> a__g(a__b) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 2 }-> a__g(1) :|: z = 1 + 1 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> a__b :|: z = 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (13) InliningProof (UPPER BOUND(ID)) 20.46/7.55 Inlined the following terminating rules on right-hand sides where appropriate: 20.46/7.55 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + X :|: X >= 0, z = X 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (14) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(Y, Y, Y) :|: Y >= 0, z'' = Y, z' = 1 + X, X >= 0, z = X 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + X1 + X2 + X3 :|: X1 >= 0, X3 >= 0, X2 >= 0, z = X1, z' = X2, z'' = X3 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + X :|: X >= 0, z = X 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(X'))) :|: X' >= 0, z = 1 + (1 + X') 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (15) SimplificationProof (BOTH BOUNDS(ID, ID)) 20.46/7.55 Simplified the RNTS by moving equalities from the constraints into the right-hand sides. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (16) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (17) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) 20.46/7.55 Found the following analysis order by SCC decomposition: 20.46/7.55 20.46/7.55 { a__b } 20.46/7.55 { a__g } 20.46/7.55 { a__f } 20.46/7.55 { mark } 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (18) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__b}, {a__g}, {a__f}, {mark} 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (19) ResultPropagationProof (UPPER BOUND(ID)) 20.46/7.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (20) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__b}, {a__g}, {a__f}, {mark} 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (21) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed SIZE bound using CoFloCo for: a__b 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(1) with polynomial bound: 1 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (22) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__b}, {a__g}, {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: ?, size: O(1) [1] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (23) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed RUNTIME bound using CoFloCo for: a__b 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(1) with polynomial bound: 1 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (24) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__g}, {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (25) ResultPropagationProof (UPPER BOUND(ID)) 20.46/7.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (26) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__g}, {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (27) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed SIZE bound using CoFloCo for: a__g 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(n^1) with polynomial bound: 1 + z 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (28) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__g}, {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: ?, size: O(n^1) [1 + z] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (29) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed RUNTIME bound using CoFloCo for: a__g 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(1) with polynomial bound: 1 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (30) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 3 }-> a__g(1) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> a__g(0) :|: z = 1 + 0 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (31) ResultPropagationProof (UPPER BOUND(ID)) 20.46/7.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (32) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 4 }-> s :|: s >= 0, s <= 0 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 4 }-> s' :|: s' >= 0, s' <= 1 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (33) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed SIZE bound using CoFloCo for: a__f 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(n^1) with polynomial bound: 1 + z + z' + 3*z'' 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (34) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 4 }-> s :|: s >= 0, s <= 0 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 4 }-> s' :|: s' >= 0, s' <= 1 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {a__f}, {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 a__f: runtime: ?, size: O(n^1) [1 + z + z' + 3*z''] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (35) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed RUNTIME bound using CoFloCo for: a__f 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(1) with polynomial bound: 2 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (36) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 1 }-> a__f(z'', z'', z'') :|: z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 4 }-> s :|: s >= 0, s <= 0 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 4 }-> s' :|: s' >= 0, s' <= 1 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 2 }-> a__g(a__f(X1', X2', X3')) :|: X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 1 }-> a__f(X1, X2, X3) :|: X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 a__f: runtime: O(1) [2], size: O(n^1) [1 + z + z' + 3*z''] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (37) ResultPropagationProof (UPPER BOUND(ID)) 20.46/7.55 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (38) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 3 }-> s'' :|: s'' >= 0, s'' <= z'' + z'' + 3 * z'' + 1, z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 4 }-> s :|: s >= 0, s <= 0 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 4 }-> s' :|: s' >= 0, s' <= 1 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> s1 :|: s1 >= 0, s1 <= X1 + X2 + 3 * X3 + 1, X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 5 }-> s3 :|: s2 >= 0, s2 <= X1' + X2' + 3 * X3' + 1, s3 >= 0, s3 <= s2 + 1, X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 a__f: runtime: O(1) [2], size: O(n^1) [1 + z + z' + 3*z''] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (39) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed SIZE bound using KoAT for: mark 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(n^1) with polynomial bound: 1 + 3*z 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (40) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 3 }-> s'' :|: s'' >= 0, s'' <= z'' + z'' + 3 * z'' + 1, z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 4 }-> s :|: s >= 0, s <= 0 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 4 }-> s' :|: s' >= 0, s' <= 1 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> s1 :|: s1 >= 0, s1 <= X1 + X2 + 3 * X3 + 1, X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 5 }-> s3 :|: s2 >= 0, s2 <= X1' + X2' + 3 * X3' + 1, s3 >= 0, s3 <= s2 + 1, X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: {mark} 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 a__f: runtime: O(1) [2], size: O(n^1) [1 + z + z' + 3*z''] 20.46/7.55 mark: runtime: ?, size: O(n^1) [1 + 3*z] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (41) IntTrsBoundProof (UPPER BOUND(ID)) 20.46/7.55 20.46/7.55 Computed RUNTIME bound using KoAT for: mark 20.46/7.55 after applying outer abstraction to obtain an ITS, 20.46/7.55 resulting in: O(n^1) with polynomial bound: 22 + 4*z 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (42) 20.46/7.55 Obligation: 20.46/7.55 Complexity RNTS consisting of the following rules: 20.46/7.55 20.46/7.55 a__b -{ 1 }-> 1 :|: 20.46/7.55 a__b -{ 1 }-> 0 :|: 20.46/7.55 a__f(z, z', z'') -{ 3 }-> s'' :|: s'' >= 0, s'' <= z'' + z'' + 3 * z'' + 1, z'' >= 0, z' - 1 >= 0, z = z' - 1 20.46/7.55 a__f(z, z', z'') -{ 1 }-> 1 + z + z' + z'' :|: z >= 0, z'' >= 0, z' >= 0 20.46/7.55 a__g(z) -{ 1 }-> 1 :|: z = 0 20.46/7.55 a__g(z) -{ 1 }-> 1 + z :|: z >= 0 20.46/7.55 mark(z) -{ 4 }-> s :|: s >= 0, s <= 0 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 4 }-> s' :|: s' >= 0, s' <= 1 + 1, z = 1 + 0 20.46/7.55 mark(z) -{ 3 }-> s1 :|: s1 >= 0, s1 <= X1 + X2 + 3 * X3 + 1, X1 >= 0, X3 >= 0, z = 1 + X1 + X2 + X3, X2 >= 0 20.46/7.55 mark(z) -{ 5 }-> s3 :|: s2 >= 0, s2 <= X1' + X2' + 3 * X3' + 1, s3 >= 0, s3 <= s2 + 1, X3' >= 0, X2' >= 0, X1' >= 0, z = 1 + (1 + X1' + X2' + X3') 20.46/7.55 mark(z) -{ 2 }-> a__g(a__g(mark(z - 2))) :|: z - 2 >= 0 20.46/7.55 mark(z) -{ 1 }-> 1 :|: z = 1 20.46/7.55 mark(z) -{ 2 }-> 1 :|: z = 0 20.46/7.55 mark(z) -{ 2 }-> 0 :|: z = 0 20.46/7.55 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X 20.46/7.55 20.46/7.55 Function symbols to be analyzed: 20.46/7.55 Previous analysis results are: 20.46/7.55 a__b: runtime: O(1) [1], size: O(1) [1] 20.46/7.55 a__g: runtime: O(1) [1], size: O(n^1) [1 + z] 20.46/7.55 a__f: runtime: O(1) [2], size: O(n^1) [1 + z + z' + 3*z''] 20.46/7.55 mark: runtime: O(n^1) [22 + 4*z], size: O(n^1) [1 + 3*z] 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (43) FinalProof (FINISHED) 20.46/7.55 Computed overall runtime complexity 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (44) 20.46/7.55 BOUNDS(1, n^1) 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (45) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 20.46/7.55 Transformed a relative TRS into a decreasing-loop problem. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (46) 20.46/7.55 Obligation: 20.46/7.55 Analyzing the following TRS for decreasing loops: 20.46/7.55 20.46/7.55 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 20.46/7.55 20.46/7.55 20.46/7.55 The TRS R consists of the following rules: 20.46/7.55 20.46/7.55 a__f(X, g(X), Y) -> a__f(Y, Y, Y) 20.46/7.55 a__g(b) -> c 20.46/7.55 a__b -> c 20.46/7.55 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) 20.46/7.55 mark(g(X)) -> a__g(mark(X)) 20.46/7.55 mark(b) -> a__b 20.46/7.55 mark(c) -> c 20.46/7.55 a__f(X1, X2, X3) -> f(X1, X2, X3) 20.46/7.55 a__g(X) -> g(X) 20.46/7.55 a__b -> b 20.46/7.55 20.46/7.55 S is empty. 20.46/7.55 Rewrite Strategy: FULL 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (47) DecreasingLoopProof (LOWER BOUND(ID)) 20.46/7.55 The following loop(s) give(s) rise to the lower bound Omega(n^1): 20.46/7.55 20.46/7.55 The rewrite sequence 20.46/7.55 20.46/7.55 mark(g(X)) ->^+ a__g(mark(X)) 20.46/7.55 20.46/7.55 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 20.46/7.55 20.46/7.55 The pumping substitution is [X / g(X)]. 20.46/7.55 20.46/7.55 The result substitution is [ ]. 20.46/7.55 20.46/7.55 20.46/7.55 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (48) 20.46/7.55 Complex Obligation (BEST) 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (49) 20.46/7.55 Obligation: 20.46/7.55 Proved the lower bound n^1 for the following obligation: 20.46/7.55 20.46/7.55 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 20.46/7.55 20.46/7.55 20.46/7.55 The TRS R consists of the following rules: 20.46/7.55 20.46/7.55 a__f(X, g(X), Y) -> a__f(Y, Y, Y) 20.46/7.55 a__g(b) -> c 20.46/7.55 a__b -> c 20.46/7.55 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) 20.46/7.55 mark(g(X)) -> a__g(mark(X)) 20.46/7.55 mark(b) -> a__b 20.46/7.55 mark(c) -> c 20.46/7.55 a__f(X1, X2, X3) -> f(X1, X2, X3) 20.46/7.55 a__g(X) -> g(X) 20.46/7.55 a__b -> b 20.46/7.55 20.46/7.55 S is empty. 20.46/7.55 Rewrite Strategy: FULL 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (50) LowerBoundPropagationProof (FINISHED) 20.46/7.55 Propagated lower bound. 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (51) 20.46/7.55 BOUNDS(n^1, INF) 20.46/7.55 20.46/7.55 ---------------------------------------- 20.46/7.55 20.46/7.55 (52) 20.46/7.55 Obligation: 20.46/7.55 Analyzing the following TRS for decreasing loops: 20.46/7.55 20.46/7.55 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 20.46/7.55 20.46/7.55 20.46/7.55 The TRS R consists of the following rules: 20.46/7.55 20.46/7.55 a__f(X, g(X), Y) -> a__f(Y, Y, Y) 20.46/7.55 a__g(b) -> c 20.46/7.55 a__b -> c 20.46/7.55 mark(f(X1, X2, X3)) -> a__f(X1, X2, X3) 20.46/7.55 mark(g(X)) -> a__g(mark(X)) 20.46/7.55 mark(b) -> a__b 20.46/7.55 mark(c) -> c 20.46/7.55 a__f(X1, X2, X3) -> f(X1, X2, X3) 20.46/7.55 a__g(X) -> g(X) 20.46/7.55 a__b -> b 20.46/7.55 20.46/7.55 S is empty. 20.46/7.55 Rewrite Strategy: FULL 20.67/7.58 EOF