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