311.28/82.18 WORST_CASE(NON_POLY, ?) 311.51/82.20 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 311.51/82.20 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 311.51/82.20 311.51/82.20 311.51/82.20 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 311.51/82.20 311.51/82.20 (0) CpxTRS 311.51/82.20 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 311.51/82.20 (2) TRS for Loop Detection 311.51/82.20 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 311.51/82.20 (4) BEST 311.51/82.20 (5) proven lower bound 311.51/82.20 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 311.51/82.20 (7) BOUNDS(n^1, INF) 311.51/82.20 (8) TRS for Loop Detection 311.51/82.20 (9) InfiniteLowerBoundProof [FINISHED, 47.1 s] 311.51/82.20 (10) BOUNDS(INF, INF) 311.51/82.20 311.51/82.20 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (0) 311.51/82.20 Obligation: 311.51/82.20 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 311.51/82.20 311.51/82.20 311.51/82.20 The TRS R consists of the following rules: 311.51/82.20 311.51/82.20 a__zeros -> cons(0, zeros) 311.51/82.20 a__U11(tt, L) -> a__U12(tt, L) 311.51/82.20 a__U12(tt, L) -> s(a__length(mark(L))) 311.51/82.20 a__U21(tt, IL, M, N) -> a__U22(tt, IL, M, N) 311.51/82.20 a__U22(tt, IL, M, N) -> a__U23(tt, IL, M, N) 311.51/82.20 a__U23(tt, IL, M, N) -> cons(mark(N), take(M, IL)) 311.51/82.20 a__length(nil) -> 0 311.51/82.20 a__length(cons(N, L)) -> a__U11(tt, L) 311.51/82.20 a__take(0, IL) -> nil 311.51/82.20 a__take(s(M), cons(N, IL)) -> a__U21(tt, IL, M, N) 311.51/82.20 mark(zeros) -> a__zeros 311.51/82.20 mark(U11(X1, X2)) -> a__U11(mark(X1), X2) 311.51/82.20 mark(U12(X1, X2)) -> a__U12(mark(X1), X2) 311.51/82.20 mark(length(X)) -> a__length(mark(X)) 311.51/82.20 mark(U21(X1, X2, X3, X4)) -> a__U21(mark(X1), X2, X3, X4) 311.51/82.20 mark(U22(X1, X2, X3, X4)) -> a__U22(mark(X1), X2, X3, X4) 311.51/82.20 mark(U23(X1, X2, X3, X4)) -> a__U23(mark(X1), X2, X3, X4) 311.51/82.20 mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) 311.51/82.20 mark(cons(X1, X2)) -> cons(mark(X1), X2) 311.51/82.20 mark(0) -> 0 311.51/82.20 mark(tt) -> tt 311.51/82.20 mark(s(X)) -> s(mark(X)) 311.51/82.20 mark(nil) -> nil 311.51/82.20 a__zeros -> zeros 311.51/82.20 a__U11(X1, X2) -> U11(X1, X2) 311.51/82.20 a__U12(X1, X2) -> U12(X1, X2) 311.51/82.20 a__length(X) -> length(X) 311.51/82.20 a__U21(X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 311.51/82.20 a__U22(X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 311.51/82.20 a__U23(X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 311.51/82.20 a__take(X1, X2) -> take(X1, X2) 311.51/82.20 311.51/82.20 S is empty. 311.51/82.20 Rewrite Strategy: FULL 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 311.51/82.20 Transformed a relative TRS into a decreasing-loop problem. 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (2) 311.51/82.20 Obligation: 311.51/82.20 Analyzing the following TRS for decreasing loops: 311.51/82.20 311.51/82.20 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 311.51/82.20 311.51/82.20 311.51/82.20 The TRS R consists of the following rules: 311.51/82.20 311.51/82.20 a__zeros -> cons(0, zeros) 311.51/82.20 a__U11(tt, L) -> a__U12(tt, L) 311.51/82.20 a__U12(tt, L) -> s(a__length(mark(L))) 311.51/82.20 a__U21(tt, IL, M, N) -> a__U22(tt, IL, M, N) 311.51/82.20 a__U22(tt, IL, M, N) -> a__U23(tt, IL, M, N) 311.51/82.20 a__U23(tt, IL, M, N) -> cons(mark(N), take(M, IL)) 311.51/82.20 a__length(nil) -> 0 311.51/82.20 a__length(cons(N, L)) -> a__U11(tt, L) 311.51/82.20 a__take(0, IL) -> nil 311.51/82.20 a__take(s(M), cons(N, IL)) -> a__U21(tt, IL, M, N) 311.51/82.20 mark(zeros) -> a__zeros 311.51/82.20 mark(U11(X1, X2)) -> a__U11(mark(X1), X2) 311.51/82.20 mark(U12(X1, X2)) -> a__U12(mark(X1), X2) 311.51/82.20 mark(length(X)) -> a__length(mark(X)) 311.51/82.20 mark(U21(X1, X2, X3, X4)) -> a__U21(mark(X1), X2, X3, X4) 311.51/82.20 mark(U22(X1, X2, X3, X4)) -> a__U22(mark(X1), X2, X3, X4) 311.51/82.20 mark(U23(X1, X2, X3, X4)) -> a__U23(mark(X1), X2, X3, X4) 311.51/82.20 mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) 311.51/82.20 mark(cons(X1, X2)) -> cons(mark(X1), X2) 311.51/82.20 mark(0) -> 0 311.51/82.20 mark(tt) -> tt 311.51/82.20 mark(s(X)) -> s(mark(X)) 311.51/82.20 mark(nil) -> nil 311.51/82.20 a__zeros -> zeros 311.51/82.20 a__U11(X1, X2) -> U11(X1, X2) 311.51/82.20 a__U12(X1, X2) -> U12(X1, X2) 311.51/82.20 a__length(X) -> length(X) 311.51/82.20 a__U21(X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 311.51/82.20 a__U22(X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 311.51/82.20 a__U23(X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 311.51/82.20 a__take(X1, X2) -> take(X1, X2) 311.51/82.20 311.51/82.20 S is empty. 311.51/82.20 Rewrite Strategy: FULL 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (3) DecreasingLoopProof (LOWER BOUND(ID)) 311.51/82.20 The following loop(s) give(s) rise to the lower bound Omega(n^1): 311.51/82.20 311.51/82.20 The rewrite sequence 311.51/82.20 311.51/82.20 mark(U21(X1, X2, X3, X4)) ->^+ a__U21(mark(X1), X2, X3, X4) 311.51/82.20 311.51/82.20 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 311.51/82.20 311.51/82.20 The pumping substitution is [X1 / U21(X1, X2, X3, X4)]. 311.51/82.20 311.51/82.20 The result substitution is [ ]. 311.51/82.20 311.51/82.20 311.51/82.20 311.51/82.20 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (4) 311.51/82.20 Complex Obligation (BEST) 311.51/82.20 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (5) 311.51/82.20 Obligation: 311.51/82.20 Proved the lower bound n^1 for the following obligation: 311.51/82.20 311.51/82.20 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 311.51/82.20 311.51/82.20 311.51/82.20 The TRS R consists of the following rules: 311.51/82.20 311.51/82.20 a__zeros -> cons(0, zeros) 311.51/82.20 a__U11(tt, L) -> a__U12(tt, L) 311.51/82.20 a__U12(tt, L) -> s(a__length(mark(L))) 311.51/82.20 a__U21(tt, IL, M, N) -> a__U22(tt, IL, M, N) 311.51/82.20 a__U22(tt, IL, M, N) -> a__U23(tt, IL, M, N) 311.51/82.20 a__U23(tt, IL, M, N) -> cons(mark(N), take(M, IL)) 311.51/82.20 a__length(nil) -> 0 311.51/82.20 a__length(cons(N, L)) -> a__U11(tt, L) 311.51/82.20 a__take(0, IL) -> nil 311.51/82.20 a__take(s(M), cons(N, IL)) -> a__U21(tt, IL, M, N) 311.51/82.20 mark(zeros) -> a__zeros 311.51/82.20 mark(U11(X1, X2)) -> a__U11(mark(X1), X2) 311.51/82.20 mark(U12(X1, X2)) -> a__U12(mark(X1), X2) 311.51/82.20 mark(length(X)) -> a__length(mark(X)) 311.51/82.20 mark(U21(X1, X2, X3, X4)) -> a__U21(mark(X1), X2, X3, X4) 311.51/82.20 mark(U22(X1, X2, X3, X4)) -> a__U22(mark(X1), X2, X3, X4) 311.51/82.20 mark(U23(X1, X2, X3, X4)) -> a__U23(mark(X1), X2, X3, X4) 311.51/82.20 mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) 311.51/82.20 mark(cons(X1, X2)) -> cons(mark(X1), X2) 311.51/82.20 mark(0) -> 0 311.51/82.20 mark(tt) -> tt 311.51/82.20 mark(s(X)) -> s(mark(X)) 311.51/82.20 mark(nil) -> nil 311.51/82.20 a__zeros -> zeros 311.51/82.20 a__U11(X1, X2) -> U11(X1, X2) 311.51/82.20 a__U12(X1, X2) -> U12(X1, X2) 311.51/82.20 a__length(X) -> length(X) 311.51/82.20 a__U21(X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 311.51/82.20 a__U22(X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 311.51/82.20 a__U23(X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 311.51/82.20 a__take(X1, X2) -> take(X1, X2) 311.51/82.20 311.51/82.20 S is empty. 311.51/82.20 Rewrite Strategy: FULL 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (6) LowerBoundPropagationProof (FINISHED) 311.51/82.20 Propagated lower bound. 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (7) 311.51/82.20 BOUNDS(n^1, INF) 311.51/82.20 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (8) 311.51/82.20 Obligation: 311.51/82.20 Analyzing the following TRS for decreasing loops: 311.51/82.20 311.51/82.20 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 311.51/82.20 311.51/82.20 311.51/82.20 The TRS R consists of the following rules: 311.51/82.20 311.51/82.20 a__zeros -> cons(0, zeros) 311.51/82.20 a__U11(tt, L) -> a__U12(tt, L) 311.51/82.20 a__U12(tt, L) -> s(a__length(mark(L))) 311.51/82.20 a__U21(tt, IL, M, N) -> a__U22(tt, IL, M, N) 311.51/82.20 a__U22(tt, IL, M, N) -> a__U23(tt, IL, M, N) 311.51/82.20 a__U23(tt, IL, M, N) -> cons(mark(N), take(M, IL)) 311.51/82.20 a__length(nil) -> 0 311.51/82.20 a__length(cons(N, L)) -> a__U11(tt, L) 311.51/82.20 a__take(0, IL) -> nil 311.51/82.20 a__take(s(M), cons(N, IL)) -> a__U21(tt, IL, M, N) 311.51/82.20 mark(zeros) -> a__zeros 311.51/82.20 mark(U11(X1, X2)) -> a__U11(mark(X1), X2) 311.51/82.20 mark(U12(X1, X2)) -> a__U12(mark(X1), X2) 311.51/82.20 mark(length(X)) -> a__length(mark(X)) 311.51/82.20 mark(U21(X1, X2, X3, X4)) -> a__U21(mark(X1), X2, X3, X4) 311.51/82.20 mark(U22(X1, X2, X3, X4)) -> a__U22(mark(X1), X2, X3, X4) 311.51/82.20 mark(U23(X1, X2, X3, X4)) -> a__U23(mark(X1), X2, X3, X4) 311.51/82.20 mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) 311.51/82.20 mark(cons(X1, X2)) -> cons(mark(X1), X2) 311.51/82.20 mark(0) -> 0 311.51/82.20 mark(tt) -> tt 311.51/82.20 mark(s(X)) -> s(mark(X)) 311.51/82.20 mark(nil) -> nil 311.51/82.20 a__zeros -> zeros 311.51/82.20 a__U11(X1, X2) -> U11(X1, X2) 311.51/82.20 a__U12(X1, X2) -> U12(X1, X2) 311.51/82.20 a__length(X) -> length(X) 311.51/82.20 a__U21(X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 311.51/82.20 a__U22(X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 311.51/82.20 a__U23(X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 311.51/82.20 a__take(X1, X2) -> take(X1, X2) 311.51/82.20 311.51/82.20 S is empty. 311.51/82.20 Rewrite Strategy: FULL 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (9) InfiniteLowerBoundProof (FINISHED) 311.51/82.20 The following loop proves infinite runtime complexity: 311.51/82.20 311.51/82.20 The rewrite sequence 311.51/82.20 311.51/82.20 a__U11(tt, zeros) ->^+ s(a__U11(tt, zeros)) 311.51/82.20 311.51/82.20 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 311.51/82.20 311.51/82.20 The pumping substitution is [ ]. 311.51/82.20 311.51/82.20 The result substitution is [ ]. 311.51/82.20 311.51/82.20 311.51/82.20 311.51/82.20 311.51/82.20 ---------------------------------------- 311.51/82.20 311.51/82.20 (10) 311.51/82.20 BOUNDS(INF, INF) 311.62/82.26 EOF