19.00/6.85 WORST_CASE(Omega(n^1), O(n^1)) 19.00/6.86 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 19.00/6.86 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 19.00/6.86 19.00/6.86 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 19.00/6.86 19.00/6.86 (0) CpxTRS 19.00/6.86 (1) DependencyGraphProof [UPPER BOUND(ID), 0 ms] 19.00/6.86 (2) CpxTRS 19.00/6.86 (3) NestedDefinedSymbolProof [UPPER BOUND(ID), 0 ms] 19.00/6.86 (4) CpxTRS 19.00/6.86 (5) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] 19.00/6.86 (6) CpxTRS 19.00/6.86 (7) CpxTrsMatchBoundsTAProof [FINISHED, 3 ms] 19.00/6.86 (8) BOUNDS(1, n^1) 19.00/6.86 (9) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 19.00/6.86 (10) TRS for Loop Detection 19.00/6.86 (11) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 19.00/6.86 (12) BEST 19.00/6.86 (13) proven lower bound 19.00/6.86 (14) LowerBoundPropagationProof [FINISHED, 0 ms] 19.00/6.86 (15) BOUNDS(n^1, INF) 19.00/6.86 (16) TRS for Loop Detection 19.00/6.86 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (0) 19.00/6.86 Obligation: 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 rev(rev(x)) -> x 19.00/6.86 rev(++(x, y)) -> ++(rev(y), rev(x)) 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 ++(x, ++(y, z)) -> ++(++(x, y), z) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (1) DependencyGraphProof (UPPER BOUND(ID)) 19.00/6.86 The following rules are not reachable from basic terms in the dependency graph and can be removed: 19.00/6.86 19.00/6.86 rev(rev(x)) -> x 19.00/6.86 rev(++(x, y)) -> ++(rev(y), rev(x)) 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (2) 19.00/6.86 Obligation: 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 ++(x, ++(y, z)) -> ++(++(x, y), z) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (3) NestedDefinedSymbolProof (UPPER BOUND(ID)) 19.00/6.86 The TRS does not nest defined symbols. 19.00/6.86 Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: 19.00/6.86 ++(x, ++(y, z)) -> ++(++(x, y), z) 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (4) 19.00/6.86 Obligation: 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (5) RelTrsToTrsProof (UPPER BOUND(ID)) 19.00/6.86 transformed relative TRS to TRS 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (6) 19.00/6.86 Obligation: 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (7) CpxTrsMatchBoundsTAProof (FINISHED) 19.00/6.86 A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 1. 19.00/6.86 19.00/6.86 The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: 19.00/6.86 final states : [1, 2, 3] 19.00/6.86 transitions: 19.00/6.86 nil0() -> 0 19.00/6.86 .0(0, 0) -> 0 19.00/6.86 rev0(0) -> 1 19.00/6.86 ++0(0, 0) -> 2 19.00/6.86 make0(0) -> 3 19.00/6.86 nil1() -> 1 19.00/6.86 ++1(0, 0) -> 4 19.00/6.86 .1(0, 4) -> 2 19.00/6.86 nil1() -> 5 19.00/6.86 .1(0, 5) -> 3 19.00/6.86 .1(0, 4) -> 4 19.00/6.86 0 -> 2 19.00/6.86 0 -> 4 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (8) 19.00/6.86 BOUNDS(1, n^1) 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (9) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 19.00/6.86 Transformed a relative TRS into a decreasing-loop problem. 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (10) 19.00/6.86 Obligation: 19.00/6.86 Analyzing the following TRS for decreasing loops: 19.00/6.86 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 rev(rev(x)) -> x 19.00/6.86 rev(++(x, y)) -> ++(rev(y), rev(x)) 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 ++(x, ++(y, z)) -> ++(++(x, y), z) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (11) DecreasingLoopProof (LOWER BOUND(ID)) 19.00/6.86 The following loop(s) give(s) rise to the lower bound Omega(n^1): 19.00/6.86 19.00/6.86 The rewrite sequence 19.00/6.86 19.00/6.86 ++(.(x, y), z) ->^+ .(x, ++(y, z)) 19.00/6.86 19.00/6.86 gives rise to a decreasing loop by considering the right hand sides subterm at position [1]. 19.00/6.86 19.00/6.86 The pumping substitution is [y / .(x, y)]. 19.00/6.86 19.00/6.86 The result substitution is [ ]. 19.00/6.86 19.00/6.86 19.00/6.86 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (12) 19.00/6.86 Complex Obligation (BEST) 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (13) 19.00/6.86 Obligation: 19.00/6.86 Proved the lower bound n^1 for the following obligation: 19.00/6.86 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 rev(rev(x)) -> x 19.00/6.86 rev(++(x, y)) -> ++(rev(y), rev(x)) 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 ++(x, ++(y, z)) -> ++(++(x, y), z) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (14) LowerBoundPropagationProof (FINISHED) 19.00/6.86 Propagated lower bound. 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (15) 19.00/6.86 BOUNDS(n^1, INF) 19.00/6.86 19.00/6.86 ---------------------------------------- 19.00/6.86 19.00/6.86 (16) 19.00/6.86 Obligation: 19.00/6.86 Analyzing the following TRS for decreasing loops: 19.00/6.86 19.00/6.86 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 19.00/6.86 19.00/6.86 19.00/6.86 The TRS R consists of the following rules: 19.00/6.86 19.00/6.86 rev(nil) -> nil 19.00/6.86 rev(rev(x)) -> x 19.00/6.86 rev(++(x, y)) -> ++(rev(y), rev(x)) 19.00/6.86 ++(nil, y) -> y 19.00/6.86 ++(x, nil) -> x 19.00/6.86 ++(.(x, y), z) -> .(x, ++(y, z)) 19.00/6.86 ++(x, ++(y, z)) -> ++(++(x, y), z) 19.00/6.86 make(x) -> .(x, nil) 19.00/6.86 19.00/6.86 S is empty. 19.00/6.86 Rewrite Strategy: FULL 19.12/6.89 EOF