4.35/1.84 WORST_CASE(NON_POLY, ?) 4.35/1.85 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 4.35/1.85 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.35/1.85 4.35/1.85 4.35/1.85 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 4.35/1.85 4.35/1.85 (0) CpxTRS 4.35/1.85 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 4.35/1.85 (2) TRS for Loop Detection 4.35/1.85 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 4.35/1.85 (4) BEST 4.35/1.85 (5) proven lower bound 4.35/1.85 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 4.35/1.85 (7) BOUNDS(n^1, INF) 4.35/1.85 (8) TRS for Loop Detection 4.35/1.85 (9) DecreasingLoopProof [FINISHED, 172 ms] 4.35/1.85 (10) BOUNDS(EXP, INF) 4.35/1.85 4.35/1.85 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (0) 4.35/1.85 Obligation: 4.35/1.85 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 4.35/1.85 4.35/1.85 4.35/1.85 The TRS R consists of the following rules: 4.35/1.85 4.35/1.85 pairNs -> cons(0, n__incr(n__oddNs)) 4.35/1.85 oddNs -> incr(pairNs) 4.35/1.85 incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) 4.35/1.85 take(0, XS) -> nil 4.35/1.85 take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) 4.35/1.85 zip(nil, XS) -> nil 4.35/1.85 zip(X, nil) -> nil 4.35/1.85 zip(cons(X, XS), cons(Y, YS)) -> cons(pair(X, Y), n__zip(activate(XS), activate(YS))) 4.35/1.85 tail(cons(X, XS)) -> activate(XS) 4.35/1.85 repItems(nil) -> nil 4.35/1.85 repItems(cons(X, XS)) -> cons(X, n__cons(X, n__repItems(activate(XS)))) 4.35/1.85 incr(X) -> n__incr(X) 4.35/1.85 oddNs -> n__oddNs 4.35/1.85 take(X1, X2) -> n__take(X1, X2) 4.35/1.85 zip(X1, X2) -> n__zip(X1, X2) 4.35/1.85 cons(X1, X2) -> n__cons(X1, X2) 4.35/1.85 repItems(X) -> n__repItems(X) 4.35/1.85 activate(n__incr(X)) -> incr(activate(X)) 4.35/1.85 activate(n__oddNs) -> oddNs 4.35/1.85 activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) 4.35/1.85 activate(n__zip(X1, X2)) -> zip(activate(X1), activate(X2)) 4.35/1.85 activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 4.35/1.85 activate(n__repItems(X)) -> repItems(activate(X)) 4.35/1.85 activate(X) -> X 4.35/1.85 4.35/1.85 S is empty. 4.35/1.85 Rewrite Strategy: FULL 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 4.35/1.85 Transformed a relative TRS into a decreasing-loop problem. 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (2) 4.35/1.85 Obligation: 4.35/1.85 Analyzing the following TRS for decreasing loops: 4.35/1.85 4.35/1.85 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 4.35/1.85 4.35/1.85 4.35/1.85 The TRS R consists of the following rules: 4.35/1.85 4.35/1.85 pairNs -> cons(0, n__incr(n__oddNs)) 4.35/1.85 oddNs -> incr(pairNs) 4.35/1.85 incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) 4.35/1.85 take(0, XS) -> nil 4.35/1.85 take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) 4.35/1.85 zip(nil, XS) -> nil 4.35/1.85 zip(X, nil) -> nil 4.35/1.85 zip(cons(X, XS), cons(Y, YS)) -> cons(pair(X, Y), n__zip(activate(XS), activate(YS))) 4.35/1.85 tail(cons(X, XS)) -> activate(XS) 4.35/1.85 repItems(nil) -> nil 4.35/1.85 repItems(cons(X, XS)) -> cons(X, n__cons(X, n__repItems(activate(XS)))) 4.35/1.85 incr(X) -> n__incr(X) 4.35/1.85 oddNs -> n__oddNs 4.35/1.85 take(X1, X2) -> n__take(X1, X2) 4.35/1.85 zip(X1, X2) -> n__zip(X1, X2) 4.35/1.85 cons(X1, X2) -> n__cons(X1, X2) 4.35/1.85 repItems(X) -> n__repItems(X) 4.35/1.85 activate(n__incr(X)) -> incr(activate(X)) 4.35/1.85 activate(n__oddNs) -> oddNs 4.35/1.85 activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) 4.35/1.85 activate(n__zip(X1, X2)) -> zip(activate(X1), activate(X2)) 4.35/1.85 activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 4.35/1.85 activate(n__repItems(X)) -> repItems(activate(X)) 4.35/1.85 activate(X) -> X 4.35/1.85 4.35/1.85 S is empty. 4.35/1.85 Rewrite Strategy: FULL 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (3) DecreasingLoopProof (LOWER BOUND(ID)) 4.35/1.85 The following loop(s) give(s) rise to the lower bound Omega(n^1): 4.35/1.85 4.35/1.85 The rewrite sequence 4.35/1.85 4.35/1.85 activate(n__cons(X1, X2)) ->^+ cons(activate(X1), X2) 4.35/1.85 4.35/1.85 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 4.35/1.85 4.35/1.85 The pumping substitution is [X1 / n__cons(X1, X2)]. 4.35/1.85 4.35/1.85 The result substitution is [ ]. 4.35/1.85 4.35/1.85 4.35/1.85 4.35/1.85 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (4) 4.35/1.85 Complex Obligation (BEST) 4.35/1.85 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (5) 4.35/1.85 Obligation: 4.35/1.85 Proved the lower bound n^1 for the following obligation: 4.35/1.85 4.35/1.85 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 4.35/1.85 4.35/1.85 4.35/1.85 The TRS R consists of the following rules: 4.35/1.85 4.35/1.85 pairNs -> cons(0, n__incr(n__oddNs)) 4.35/1.85 oddNs -> incr(pairNs) 4.35/1.85 incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) 4.35/1.85 take(0, XS) -> nil 4.35/1.85 take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) 4.35/1.85 zip(nil, XS) -> nil 4.35/1.85 zip(X, nil) -> nil 4.35/1.85 zip(cons(X, XS), cons(Y, YS)) -> cons(pair(X, Y), n__zip(activate(XS), activate(YS))) 4.35/1.85 tail(cons(X, XS)) -> activate(XS) 4.35/1.85 repItems(nil) -> nil 4.35/1.85 repItems(cons(X, XS)) -> cons(X, n__cons(X, n__repItems(activate(XS)))) 4.35/1.85 incr(X) -> n__incr(X) 4.35/1.85 oddNs -> n__oddNs 4.35/1.85 take(X1, X2) -> n__take(X1, X2) 4.35/1.85 zip(X1, X2) -> n__zip(X1, X2) 4.35/1.85 cons(X1, X2) -> n__cons(X1, X2) 4.35/1.85 repItems(X) -> n__repItems(X) 4.35/1.85 activate(n__incr(X)) -> incr(activate(X)) 4.35/1.85 activate(n__oddNs) -> oddNs 4.35/1.85 activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) 4.35/1.85 activate(n__zip(X1, X2)) -> zip(activate(X1), activate(X2)) 4.35/1.85 activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 4.35/1.85 activate(n__repItems(X)) -> repItems(activate(X)) 4.35/1.85 activate(X) -> X 4.35/1.85 4.35/1.85 S is empty. 4.35/1.85 Rewrite Strategy: FULL 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (6) LowerBoundPropagationProof (FINISHED) 4.35/1.85 Propagated lower bound. 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (7) 4.35/1.85 BOUNDS(n^1, INF) 4.35/1.85 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (8) 4.35/1.85 Obligation: 4.35/1.85 Analyzing the following TRS for decreasing loops: 4.35/1.85 4.35/1.85 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 4.35/1.85 4.35/1.85 4.35/1.85 The TRS R consists of the following rules: 4.35/1.85 4.35/1.85 pairNs -> cons(0, n__incr(n__oddNs)) 4.35/1.85 oddNs -> incr(pairNs) 4.35/1.85 incr(cons(X, XS)) -> cons(s(X), n__incr(activate(XS))) 4.35/1.85 take(0, XS) -> nil 4.35/1.85 take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) 4.35/1.85 zip(nil, XS) -> nil 4.35/1.85 zip(X, nil) -> nil 4.35/1.85 zip(cons(X, XS), cons(Y, YS)) -> cons(pair(X, Y), n__zip(activate(XS), activate(YS))) 4.35/1.85 tail(cons(X, XS)) -> activate(XS) 4.35/1.85 repItems(nil) -> nil 4.35/1.85 repItems(cons(X, XS)) -> cons(X, n__cons(X, n__repItems(activate(XS)))) 4.35/1.85 incr(X) -> n__incr(X) 4.35/1.85 oddNs -> n__oddNs 4.35/1.85 take(X1, X2) -> n__take(X1, X2) 4.35/1.85 zip(X1, X2) -> n__zip(X1, X2) 4.35/1.85 cons(X1, X2) -> n__cons(X1, X2) 4.35/1.85 repItems(X) -> n__repItems(X) 4.35/1.85 activate(n__incr(X)) -> incr(activate(X)) 4.35/1.85 activate(n__oddNs) -> oddNs 4.35/1.85 activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) 4.35/1.85 activate(n__zip(X1, X2)) -> zip(activate(X1), activate(X2)) 4.35/1.85 activate(n__cons(X1, X2)) -> cons(activate(X1), X2) 4.35/1.85 activate(n__repItems(X)) -> repItems(activate(X)) 4.35/1.85 activate(X) -> X 4.35/1.85 4.35/1.85 S is empty. 4.35/1.85 Rewrite Strategy: FULL 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (9) DecreasingLoopProof (FINISHED) 4.35/1.85 The following loop(s) give(s) rise to the lower bound EXP: 4.35/1.85 4.35/1.85 The rewrite sequence 4.35/1.85 4.35/1.85 activate(n__repItems(n__cons(X11_0, X22_0))) ->^+ cons(activate(X11_0), n__cons(activate(X11_0), n__repItems(activate(X22_0)))) 4.35/1.85 4.35/1.85 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 4.35/1.85 4.35/1.85 The pumping substitution is [X11_0 / n__repItems(n__cons(X11_0, X22_0))]. 4.35/1.85 4.35/1.85 The result substitution is [ ]. 4.35/1.85 4.35/1.85 4.35/1.85 4.35/1.85 The rewrite sequence 4.35/1.85 4.35/1.85 activate(n__repItems(n__cons(X11_0, X22_0))) ->^+ cons(activate(X11_0), n__cons(activate(X11_0), n__repItems(activate(X22_0)))) 4.35/1.85 4.35/1.85 gives rise to a decreasing loop by considering the right hand sides subterm at position [1,0]. 4.35/1.85 4.35/1.85 The pumping substitution is [X11_0 / n__repItems(n__cons(X11_0, X22_0))]. 4.35/1.85 4.35/1.85 The result substitution is [ ]. 4.35/1.85 4.35/1.85 4.35/1.85 4.35/1.85 4.35/1.85 ---------------------------------------- 4.35/1.85 4.35/1.85 (10) 4.35/1.85 BOUNDS(EXP, INF) 4.35/1.89 EOF