3.17/2.03 WORST_CASE(NON_POLY, ?) 3.17/2.04 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 3.17/2.04 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.17/2.04 3.17/2.04 3.17/2.04 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.17/2.04 3.17/2.04 (0) CpxTRS 3.17/2.04 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 3.17/2.04 (2) TRS for Loop Detection 3.17/2.04 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 3.17/2.04 (4) BEST 3.17/2.04 (5) proven lower bound 3.17/2.04 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 3.17/2.04 (7) BOUNDS(n^1, INF) 3.17/2.04 (8) TRS for Loop Detection 3.17/2.04 (9) DecreasingLoopProof [FINISHED, 25 ms] 3.17/2.04 (10) BOUNDS(EXP, INF) 3.17/2.04 3.17/2.04 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (0) 3.17/2.04 Obligation: 3.17/2.04 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.17/2.04 3.17/2.04 3.17/2.04 The TRS R consists of the following rules: 3.17/2.04 3.17/2.04 from(X) -> cons(X, n__from(n__s(X))) 3.17/2.04 2ndspos(0, Z) -> rnil 3.17/2.04 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))) 3.17/2.04 2ndsneg(0, Z) -> rnil 3.17/2.04 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))) 3.17/2.04 pi(X) -> 2ndspos(X, from(0)) 3.17/2.04 plus(0, Y) -> Y 3.17/2.04 plus(s(X), Y) -> s(plus(X, Y)) 3.17/2.04 times(0, Y) -> 0 3.17/2.04 times(s(X), Y) -> plus(Y, times(X, Y)) 3.17/2.04 square(X) -> times(X, X) 3.17/2.04 from(X) -> n__from(X) 3.17/2.04 s(X) -> n__s(X) 3.17/2.04 activate(n__from(X)) -> from(activate(X)) 3.17/2.04 activate(n__s(X)) -> s(activate(X)) 3.17/2.04 activate(X) -> X 3.17/2.04 3.17/2.04 S is empty. 3.17/2.04 Rewrite Strategy: FULL 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 3.17/2.04 Transformed a relative TRS into a decreasing-loop problem. 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (2) 3.17/2.04 Obligation: 3.17/2.04 Analyzing the following TRS for decreasing loops: 3.17/2.04 3.17/2.04 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.17/2.04 3.17/2.04 3.17/2.04 The TRS R consists of the following rules: 3.17/2.04 3.17/2.04 from(X) -> cons(X, n__from(n__s(X))) 3.17/2.04 2ndspos(0, Z) -> rnil 3.17/2.04 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))) 3.17/2.04 2ndsneg(0, Z) -> rnil 3.17/2.04 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))) 3.17/2.04 pi(X) -> 2ndspos(X, from(0)) 3.17/2.04 plus(0, Y) -> Y 3.17/2.04 plus(s(X), Y) -> s(plus(X, Y)) 3.17/2.04 times(0, Y) -> 0 3.17/2.04 times(s(X), Y) -> plus(Y, times(X, Y)) 3.17/2.04 square(X) -> times(X, X) 3.17/2.04 from(X) -> n__from(X) 3.17/2.04 s(X) -> n__s(X) 3.17/2.04 activate(n__from(X)) -> from(activate(X)) 3.17/2.04 activate(n__s(X)) -> s(activate(X)) 3.17/2.04 activate(X) -> X 3.17/2.04 3.17/2.04 S is empty. 3.17/2.04 Rewrite Strategy: FULL 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (3) DecreasingLoopProof (LOWER BOUND(ID)) 3.17/2.04 The following loop(s) give(s) rise to the lower bound Omega(n^1): 3.17/2.04 3.17/2.04 The rewrite sequence 3.17/2.04 3.17/2.04 activate(n__s(X)) ->^+ s(activate(X)) 3.17/2.04 3.17/2.04 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 3.17/2.04 3.17/2.04 The pumping substitution is [X / n__s(X)]. 3.17/2.04 3.17/2.04 The result substitution is [ ]. 3.17/2.04 3.17/2.04 3.17/2.04 3.17/2.04 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (4) 3.17/2.04 Complex Obligation (BEST) 3.17/2.04 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (5) 3.17/2.04 Obligation: 3.17/2.04 Proved the lower bound n^1 for the following obligation: 3.17/2.04 3.17/2.04 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.17/2.04 3.17/2.04 3.17/2.04 The TRS R consists of the following rules: 3.17/2.04 3.17/2.04 from(X) -> cons(X, n__from(n__s(X))) 3.17/2.04 2ndspos(0, Z) -> rnil 3.17/2.04 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))) 3.17/2.04 2ndsneg(0, Z) -> rnil 3.17/2.04 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))) 3.17/2.04 pi(X) -> 2ndspos(X, from(0)) 3.17/2.04 plus(0, Y) -> Y 3.17/2.04 plus(s(X), Y) -> s(plus(X, Y)) 3.17/2.04 times(0, Y) -> 0 3.17/2.04 times(s(X), Y) -> plus(Y, times(X, Y)) 3.17/2.04 square(X) -> times(X, X) 3.17/2.04 from(X) -> n__from(X) 3.17/2.04 s(X) -> n__s(X) 3.17/2.04 activate(n__from(X)) -> from(activate(X)) 3.17/2.04 activate(n__s(X)) -> s(activate(X)) 3.17/2.04 activate(X) -> X 3.17/2.04 3.17/2.04 S is empty. 3.17/2.04 Rewrite Strategy: FULL 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (6) LowerBoundPropagationProof (FINISHED) 3.17/2.04 Propagated lower bound. 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (7) 3.17/2.04 BOUNDS(n^1, INF) 3.17/2.04 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (8) 3.17/2.04 Obligation: 3.17/2.04 Analyzing the following TRS for decreasing loops: 3.17/2.04 3.17/2.04 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 3.17/2.04 3.17/2.04 3.17/2.04 The TRS R consists of the following rules: 3.17/2.04 3.17/2.04 from(X) -> cons(X, n__from(n__s(X))) 3.17/2.04 2ndspos(0, Z) -> rnil 3.17/2.04 2ndspos(s(N), cons(X, Z)) -> 2ndspos(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndspos(s(N), cons2(X, cons(Y, Z))) -> rcons(posrecip(Y), 2ndsneg(N, activate(Z))) 3.17/2.04 2ndsneg(0, Z) -> rnil 3.17/2.04 2ndsneg(s(N), cons(X, Z)) -> 2ndsneg(s(N), cons2(X, activate(Z))) 3.17/2.04 2ndsneg(s(N), cons2(X, cons(Y, Z))) -> rcons(negrecip(Y), 2ndspos(N, activate(Z))) 3.17/2.04 pi(X) -> 2ndspos(X, from(0)) 3.17/2.04 plus(0, Y) -> Y 3.17/2.04 plus(s(X), Y) -> s(plus(X, Y)) 3.17/2.04 times(0, Y) -> 0 3.17/2.04 times(s(X), Y) -> plus(Y, times(X, Y)) 3.17/2.04 square(X) -> times(X, X) 3.17/2.04 from(X) -> n__from(X) 3.17/2.04 s(X) -> n__s(X) 3.17/2.04 activate(n__from(X)) -> from(activate(X)) 3.17/2.04 activate(n__s(X)) -> s(activate(X)) 3.17/2.04 activate(X) -> X 3.17/2.04 3.17/2.04 S is empty. 3.17/2.04 Rewrite Strategy: FULL 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (9) DecreasingLoopProof (FINISHED) 3.17/2.04 The following loop(s) give(s) rise to the lower bound EXP: 3.17/2.04 3.17/2.04 The rewrite sequence 3.17/2.04 3.17/2.04 activate(n__from(X)) ->^+ cons(activate(X), n__from(n__s(activate(X)))) 3.17/2.04 3.17/2.04 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 3.17/2.04 3.17/2.04 The pumping substitution is [X / n__from(X)]. 3.17/2.04 3.17/2.04 The result substitution is [ ]. 3.17/2.04 3.17/2.04 3.17/2.04 3.17/2.04 The rewrite sequence 3.17/2.04 3.17/2.04 activate(n__from(X)) ->^+ cons(activate(X), n__from(n__s(activate(X)))) 3.17/2.04 3.17/2.04 gives rise to a decreasing loop by considering the right hand sides subterm at position [1,0,0]. 3.17/2.04 3.17/2.04 The pumping substitution is [X / n__from(X)]. 3.17/2.04 3.17/2.04 The result substitution is [ ]. 3.17/2.04 3.17/2.04 3.17/2.04 3.17/2.04 3.17/2.04 ---------------------------------------- 3.17/2.04 3.17/2.04 (10) 3.17/2.04 BOUNDS(EXP, INF) 3.43/2.08 EOF