301.93/291.49 WORST_CASE(Omega(n^1), ?) 301.93/291.50 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 301.93/291.50 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 301.93/291.50 301.93/291.50 301.93/291.50 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 301.93/291.50 301.93/291.50 (0) CpxTRS 301.93/291.50 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 301.93/291.50 (2) TRS for Loop Detection 301.93/291.50 (3) DecreasingLoopProof [LOWER BOUND(ID), 53 ms] 301.93/291.50 (4) BEST 301.93/291.50 (5) proven lower bound 301.93/291.50 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 301.93/291.50 (7) BOUNDS(n^1, INF) 301.93/291.50 (8) TRS for Loop Detection 301.93/291.50 301.93/291.50 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (0) 301.93/291.50 Obligation: 301.93/291.50 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 301.93/291.50 301.93/291.50 301.93/291.50 The TRS R consists of the following rules: 301.93/291.50 301.93/291.50 is_empty(nil) -> true 301.93/291.50 is_empty(cons(x, l)) -> false 301.93/291.50 hd(cons(x, l)) -> x 301.93/291.50 tl(cons(x, l)) -> l 301.93/291.50 append(l1, l2) -> ifappend(l1, l2, is_empty(l1)) 301.93/291.50 ifappend(l1, l2, true) -> l2 301.93/291.50 ifappend(l1, l2, false) -> cons(hd(l1), append(tl(l1), l2)) 301.93/291.50 301.93/291.50 S is empty. 301.93/291.50 Rewrite Strategy: FULL 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 301.93/291.50 Transformed a relative TRS into a decreasing-loop problem. 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (2) 301.93/291.50 Obligation: 301.93/291.50 Analyzing the following TRS for decreasing loops: 301.93/291.50 301.93/291.50 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 301.93/291.50 301.93/291.50 301.93/291.50 The TRS R consists of the following rules: 301.93/291.50 301.93/291.50 is_empty(nil) -> true 301.93/291.50 is_empty(cons(x, l)) -> false 301.93/291.50 hd(cons(x, l)) -> x 301.93/291.50 tl(cons(x, l)) -> l 301.93/291.50 append(l1, l2) -> ifappend(l1, l2, is_empty(l1)) 301.93/291.50 ifappend(l1, l2, true) -> l2 301.93/291.50 ifappend(l1, l2, false) -> cons(hd(l1), append(tl(l1), l2)) 301.93/291.50 301.93/291.50 S is empty. 301.93/291.50 Rewrite Strategy: FULL 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (3) DecreasingLoopProof (LOWER BOUND(ID)) 301.93/291.50 The following loop(s) give(s) rise to the lower bound Omega(n^1): 301.93/291.50 301.93/291.50 The rewrite sequence 301.93/291.50 301.93/291.50 ifappend(cons(x1_0, cons(x1_1, l2_1)), l2, false) ->^+ cons(hd(cons(x1_0, cons(x1_1, l2_1))), ifappend(cons(x1_1, l2_1), l2, false)) 301.93/291.50 301.93/291.50 gives rise to a decreasing loop by considering the right hand sides subterm at position [1]. 301.93/291.50 301.93/291.50 The pumping substitution is [l2_1 / cons(x1_1, l2_1)]. 301.93/291.50 301.93/291.50 The result substitution is [x1_0 / x1_1]. 301.93/291.50 301.93/291.50 301.93/291.50 301.93/291.50 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (4) 301.93/291.50 Complex Obligation (BEST) 301.93/291.50 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (5) 301.93/291.50 Obligation: 301.93/291.50 Proved the lower bound n^1 for the following obligation: 301.93/291.50 301.93/291.50 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 301.93/291.50 301.93/291.50 301.93/291.50 The TRS R consists of the following rules: 301.93/291.50 301.93/291.50 is_empty(nil) -> true 301.93/291.50 is_empty(cons(x, l)) -> false 301.93/291.50 hd(cons(x, l)) -> x 301.93/291.50 tl(cons(x, l)) -> l 301.93/291.50 append(l1, l2) -> ifappend(l1, l2, is_empty(l1)) 301.93/291.50 ifappend(l1, l2, true) -> l2 301.93/291.50 ifappend(l1, l2, false) -> cons(hd(l1), append(tl(l1), l2)) 301.93/291.50 301.93/291.50 S is empty. 301.93/291.50 Rewrite Strategy: FULL 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (6) LowerBoundPropagationProof (FINISHED) 301.93/291.50 Propagated lower bound. 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (7) 301.93/291.50 BOUNDS(n^1, INF) 301.93/291.50 301.93/291.50 ---------------------------------------- 301.93/291.50 301.93/291.50 (8) 301.93/291.50 Obligation: 301.93/291.50 Analyzing the following TRS for decreasing loops: 301.93/291.50 301.93/291.50 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 301.93/291.50 301.93/291.50 301.93/291.50 The TRS R consists of the following rules: 301.93/291.50 301.93/291.50 is_empty(nil) -> true 301.93/291.50 is_empty(cons(x, l)) -> false 301.93/291.50 hd(cons(x, l)) -> x 301.93/291.50 tl(cons(x, l)) -> l 301.93/291.50 append(l1, l2) -> ifappend(l1, l2, is_empty(l1)) 301.93/291.50 ifappend(l1, l2, true) -> l2 301.93/291.50 ifappend(l1, l2, false) -> cons(hd(l1), append(tl(l1), l2)) 301.93/291.50 301.93/291.50 S is empty. 301.93/291.50 Rewrite Strategy: FULL 301.93/291.52 EOF