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