6.47/2.42 WORST_CASE(NON_POLY, ?) 6.47/2.42 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 6.47/2.42 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.47/2.42 6.47/2.42 6.47/2.42 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.47/2.42 6.47/2.42 (0) CpxTRS 6.47/2.42 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 6.47/2.42 (2) TRS for Loop Detection 6.47/2.42 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 6.47/2.42 (4) BEST 6.47/2.42 (5) proven lower bound 6.47/2.42 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 6.47/2.42 (7) BOUNDS(n^1, INF) 6.47/2.42 (8) TRS for Loop Detection 6.47/2.42 (9) DecreasingLoopProof [FINISHED, 543 ms] 6.47/2.42 (10) BOUNDS(EXP, INF) 6.47/2.42 6.47/2.42 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (0) 6.47/2.42 Obligation: 6.47/2.42 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.47/2.42 6.47/2.42 6.47/2.42 The TRS R consists of the following rules: 6.47/2.42 6.47/2.42 select(x', revprefix, Cons(x, xs)) -> mapconsapp(x', permute(revapp(revprefix, Cons(x, xs))), select(x, Cons(x', revprefix), xs)) 6.47/2.42 revapp(Cons(x, xs), rest) -> revapp(xs, Cons(x, rest)) 6.47/2.42 permute(Cons(x, xs)) -> select(x, Nil, xs) 6.47/2.42 mapconsapp(x', Cons(x, xs), rest) -> Cons(Cons(x', x), mapconsapp(x', xs, rest)) 6.47/2.42 select(x, revprefix, Nil) -> mapconsapp(x, permute(revapp(revprefix, Nil)), Nil) 6.47/2.42 revapp(Nil, rest) -> rest 6.47/2.42 permute(Nil) -> Cons(Nil, Nil) 6.47/2.42 mapconsapp(x, Nil, rest) -> rest 6.47/2.42 goal(xs) -> permute(xs) 6.47/2.42 6.47/2.42 S is empty. 6.47/2.42 Rewrite Strategy: INNERMOST 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 6.47/2.42 Transformed a relative TRS into a decreasing-loop problem. 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (2) 6.47/2.42 Obligation: 6.47/2.42 Analyzing the following TRS for decreasing loops: 6.47/2.42 6.47/2.42 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.47/2.42 6.47/2.42 6.47/2.42 The TRS R consists of the following rules: 6.47/2.42 6.47/2.42 select(x', revprefix, Cons(x, xs)) -> mapconsapp(x', permute(revapp(revprefix, Cons(x, xs))), select(x, Cons(x', revprefix), xs)) 6.47/2.42 revapp(Cons(x, xs), rest) -> revapp(xs, Cons(x, rest)) 6.47/2.42 permute(Cons(x, xs)) -> select(x, Nil, xs) 6.47/2.42 mapconsapp(x', Cons(x, xs), rest) -> Cons(Cons(x', x), mapconsapp(x', xs, rest)) 6.47/2.42 select(x, revprefix, Nil) -> mapconsapp(x, permute(revapp(revprefix, Nil)), Nil) 6.47/2.42 revapp(Nil, rest) -> rest 6.47/2.42 permute(Nil) -> Cons(Nil, Nil) 6.47/2.42 mapconsapp(x, Nil, rest) -> rest 6.47/2.42 goal(xs) -> permute(xs) 6.47/2.42 6.47/2.42 S is empty. 6.47/2.42 Rewrite Strategy: INNERMOST 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (3) DecreasingLoopProof (LOWER BOUND(ID)) 6.47/2.42 The following loop(s) give(s) rise to the lower bound Omega(n^1): 6.47/2.42 6.47/2.42 The rewrite sequence 6.47/2.42 6.47/2.42 revapp(Cons(x, xs), rest) ->^+ revapp(xs, Cons(x, rest)) 6.47/2.42 6.47/2.42 gives rise to a decreasing loop by considering the right hand sides subterm at position []. 6.47/2.42 6.47/2.42 The pumping substitution is [xs / Cons(x, xs)]. 6.47/2.42 6.47/2.42 The result substitution is [rest / Cons(x, rest)]. 6.47/2.42 6.47/2.42 6.47/2.42 6.47/2.42 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (4) 6.47/2.42 Complex Obligation (BEST) 6.47/2.42 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (5) 6.47/2.42 Obligation: 6.47/2.42 Proved the lower bound n^1 for the following obligation: 6.47/2.42 6.47/2.42 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.47/2.42 6.47/2.42 6.47/2.42 The TRS R consists of the following rules: 6.47/2.42 6.47/2.42 select(x', revprefix, Cons(x, xs)) -> mapconsapp(x', permute(revapp(revprefix, Cons(x, xs))), select(x, Cons(x', revprefix), xs)) 6.47/2.42 revapp(Cons(x, xs), rest) -> revapp(xs, Cons(x, rest)) 6.47/2.42 permute(Cons(x, xs)) -> select(x, Nil, xs) 6.47/2.42 mapconsapp(x', Cons(x, xs), rest) -> Cons(Cons(x', x), mapconsapp(x', xs, rest)) 6.47/2.42 select(x, revprefix, Nil) -> mapconsapp(x, permute(revapp(revprefix, Nil)), Nil) 6.47/2.42 revapp(Nil, rest) -> rest 6.47/2.42 permute(Nil) -> Cons(Nil, Nil) 6.47/2.42 mapconsapp(x, Nil, rest) -> rest 6.47/2.42 goal(xs) -> permute(xs) 6.47/2.42 6.47/2.42 S is empty. 6.47/2.42 Rewrite Strategy: INNERMOST 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (6) LowerBoundPropagationProof (FINISHED) 6.47/2.42 Propagated lower bound. 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (7) 6.47/2.42 BOUNDS(n^1, INF) 6.47/2.42 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (8) 6.47/2.42 Obligation: 6.47/2.42 Analyzing the following TRS for decreasing loops: 6.47/2.42 6.47/2.42 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.47/2.42 6.47/2.42 6.47/2.42 The TRS R consists of the following rules: 6.47/2.42 6.47/2.42 select(x', revprefix, Cons(x, xs)) -> mapconsapp(x', permute(revapp(revprefix, Cons(x, xs))), select(x, Cons(x', revprefix), xs)) 6.47/2.42 revapp(Cons(x, xs), rest) -> revapp(xs, Cons(x, rest)) 6.47/2.42 permute(Cons(x, xs)) -> select(x, Nil, xs) 6.47/2.42 mapconsapp(x', Cons(x, xs), rest) -> Cons(Cons(x', x), mapconsapp(x', xs, rest)) 6.47/2.42 select(x, revprefix, Nil) -> mapconsapp(x, permute(revapp(revprefix, Nil)), Nil) 6.47/2.42 revapp(Nil, rest) -> rest 6.47/2.42 permute(Nil) -> Cons(Nil, Nil) 6.47/2.42 mapconsapp(x, Nil, rest) -> rest 6.47/2.42 goal(xs) -> permute(xs) 6.47/2.42 6.47/2.42 S is empty. 6.47/2.42 Rewrite Strategy: INNERMOST 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (9) DecreasingLoopProof (FINISHED) 6.47/2.42 The following loop(s) give(s) rise to the lower bound EXP: 6.47/2.42 6.47/2.42 The rewrite sequence 6.47/2.42 6.47/2.42 permute(Cons(x, Cons(x3_0, Cons(x3_1, xs4_1)))) ->^+ mapconsapp(x, permute(Cons(x3_0, Cons(x3_1, xs4_1))), mapconsapp(x3_0, permute(Cons(x, Cons(x3_1, xs4_1))), select(x3_1, Cons(x3_0, Cons(x, Nil)), xs4_1))) 6.47/2.42 6.47/2.42 gives rise to a decreasing loop by considering the right hand sides subterm at position [1]. 6.47/2.42 6.47/2.42 The pumping substitution is [xs4_1 / Cons(x3_1, xs4_1)]. 6.47/2.42 6.47/2.42 The result substitution is [x / x3_0, x3_0 / x3_1]. 6.47/2.42 6.47/2.42 6.47/2.42 6.47/2.42 The rewrite sequence 6.47/2.42 6.47/2.42 permute(Cons(x, Cons(x3_0, Cons(x3_1, xs4_1)))) ->^+ mapconsapp(x, permute(Cons(x3_0, Cons(x3_1, xs4_1))), mapconsapp(x3_0, permute(Cons(x, Cons(x3_1, xs4_1))), select(x3_1, Cons(x3_0, Cons(x, Nil)), xs4_1))) 6.47/2.42 6.47/2.42 gives rise to a decreasing loop by considering the right hand sides subterm at position [2,1]. 6.47/2.42 6.47/2.42 The pumping substitution is [xs4_1 / Cons(x3_1, xs4_1)]. 6.47/2.42 6.47/2.42 The result substitution is [x3_0 / x3_1]. 6.47/2.42 6.47/2.42 6.47/2.42 6.47/2.42 6.47/2.42 ---------------------------------------- 6.47/2.42 6.47/2.42 (10) 6.47/2.42 BOUNDS(EXP, INF) 6.56/2.46 EOF