2.93/1.56 WORST_CASE(NON_POLY, ?) 3.21/1.57 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 3.21/1.57 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.21/1.57 3.21/1.57 3.21/1.57 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.21/1.57 3.21/1.57 (0) CpxTRS 3.21/1.57 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 3.21/1.57 (2) TRS for Loop Detection 3.21/1.57 (3) DecreasingLoopProof [FINISHED, 0 ms] 3.21/1.57 (4) BOUNDS(EXP, INF) 3.21/1.57 3.21/1.57 3.21/1.57 ---------------------------------------- 3.21/1.57 3.21/1.57 (0) 3.21/1.57 Obligation: 3.21/1.57 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.21/1.57 3.21/1.57 3.21/1.57 The TRS R consists of the following rules: 3.21/1.57 3.21/1.57 bsort(nil) -> nil 3.21/1.57 bsort(.(x, y)) -> last(.(bubble(.(x, y)), bsort(butlast(bubble(.(x, y)))))) 3.21/1.57 bubble(nil) -> nil 3.21/1.57 bubble(.(x, nil)) -> .(x, nil) 3.21/1.57 bubble(.(x, .(y, z))) -> if(<=(x, y), .(y, bubble(.(x, z))), .(x, bubble(.(y, z)))) 3.21/1.57 last(nil) -> 0 3.21/1.57 last(.(x, nil)) -> x 3.21/1.57 last(.(x, .(y, z))) -> last(.(y, z)) 3.21/1.57 butlast(nil) -> nil 3.21/1.57 butlast(.(x, nil)) -> nil 3.21/1.57 butlast(.(x, .(y, z))) -> .(x, butlast(.(y, z))) 3.21/1.57 3.21/1.57 S is empty. 3.21/1.57 Rewrite Strategy: INNERMOST 3.21/1.57 ---------------------------------------- 3.21/1.57 3.21/1.57 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 3.21/1.57 Transformed a relative TRS into a decreasing-loop problem. 3.21/1.57 ---------------------------------------- 3.21/1.57 3.21/1.57 (2) 3.21/1.57 Obligation: 3.21/1.57 Analyzing the following TRS for decreasing loops: 3.21/1.57 3.21/1.57 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.21/1.57 3.21/1.57 3.21/1.57 The TRS R consists of the following rules: 3.21/1.57 3.21/1.57 bsort(nil) -> nil 3.21/1.57 bsort(.(x, y)) -> last(.(bubble(.(x, y)), bsort(butlast(bubble(.(x, y)))))) 3.21/1.57 bubble(nil) -> nil 3.21/1.57 bubble(.(x, nil)) -> .(x, nil) 3.21/1.57 bubble(.(x, .(y, z))) -> if(<=(x, y), .(y, bubble(.(x, z))), .(x, bubble(.(y, z)))) 3.21/1.57 last(nil) -> 0 3.21/1.57 last(.(x, nil)) -> x 3.21/1.57 last(.(x, .(y, z))) -> last(.(y, z)) 3.21/1.57 butlast(nil) -> nil 3.21/1.57 butlast(.(x, nil)) -> nil 3.21/1.57 butlast(.(x, .(y, z))) -> .(x, butlast(.(y, z))) 3.21/1.57 3.21/1.57 S is empty. 3.21/1.57 Rewrite Strategy: INNERMOST 3.21/1.57 ---------------------------------------- 3.21/1.57 3.21/1.57 (3) DecreasingLoopProof (FINISHED) 3.21/1.57 The following loop(s) give(s) rise to the lower bound EXP: 3.21/1.57 3.21/1.57 The rewrite sequence 3.21/1.57 3.21/1.57 bubble(.(x, .(y, z))) ->^+ if(<=(x, y), .(y, bubble(.(x, z))), .(x, bubble(.(y, z)))) 3.21/1.57 3.21/1.57 gives rise to a decreasing loop by considering the right hand sides subterm at position [1,1]. 3.21/1.57 3.21/1.57 The pumping substitution is [z / .(y, z)]. 3.21/1.57 3.21/1.57 The result substitution is [ ]. 3.21/1.57 3.21/1.57 3.21/1.57 3.21/1.57 The rewrite sequence 3.21/1.57 3.21/1.57 bubble(.(x, .(y, z))) ->^+ if(<=(x, y), .(y, bubble(.(x, z))), .(x, bubble(.(y, z)))) 3.21/1.57 3.21/1.57 gives rise to a decreasing loop by considering the right hand sides subterm at position [2,1]. 3.21/1.57 3.21/1.57 The pumping substitution is [z / .(y, z)]. 3.21/1.57 3.21/1.57 The result substitution is [x / y]. 3.21/1.57 3.21/1.57 3.21/1.57 3.21/1.57 3.21/1.57 ---------------------------------------- 3.21/1.57 3.21/1.57 (4) 3.21/1.57 BOUNDS(EXP, INF) 3.23/1.60 EOF