5.47/2.22 WORST_CASE(NON_POLY, ?) 5.47/2.23 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 5.47/2.23 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.47/2.23 5.47/2.23 5.47/2.23 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 5.47/2.23 5.47/2.23 (0) CpxTRS 5.47/2.23 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 5.47/2.23 (2) TRS for Loop Detection 5.47/2.23 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 5.47/2.23 (4) BEST 5.47/2.23 (5) proven lower bound 5.47/2.23 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 5.47/2.23 (7) BOUNDS(n^1, INF) 5.47/2.23 (8) TRS for Loop Detection 5.47/2.23 (9) InfiniteLowerBoundProof [FINISHED, 324 ms] 5.47/2.23 (10) BOUNDS(INF, INF) 5.47/2.23 5.47/2.23 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (0) 5.47/2.23 Obligation: 5.47/2.23 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 5.47/2.23 5.47/2.23 5.47/2.23 The TRS R consists of the following rules: 5.47/2.23 5.47/2.23 incr(nil) -> nil 5.47/2.23 incr(cons(X, L)) -> cons(s(X), n__incr(activate(L))) 5.47/2.23 adx(nil) -> nil 5.47/2.23 adx(cons(X, L)) -> incr(cons(X, n__adx(activate(L)))) 5.47/2.23 nats -> adx(zeros) 5.47/2.23 zeros -> cons(0, n__zeros) 5.47/2.23 head(cons(X, L)) -> X 5.47/2.23 tail(cons(X, L)) -> activate(L) 5.47/2.23 incr(X) -> n__incr(X) 5.47/2.23 adx(X) -> n__adx(X) 5.47/2.23 zeros -> n__zeros 5.47/2.23 activate(n__incr(X)) -> incr(activate(X)) 5.47/2.23 activate(n__adx(X)) -> adx(activate(X)) 5.47/2.23 activate(n__zeros) -> zeros 5.47/2.23 activate(X) -> X 5.47/2.23 5.47/2.23 S is empty. 5.47/2.23 Rewrite Strategy: INNERMOST 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 5.47/2.23 Transformed a relative TRS into a decreasing-loop problem. 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (2) 5.47/2.23 Obligation: 5.47/2.23 Analyzing the following TRS for decreasing loops: 5.47/2.23 5.47/2.23 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 5.47/2.23 5.47/2.23 5.47/2.23 The TRS R consists of the following rules: 5.47/2.23 5.47/2.23 incr(nil) -> nil 5.47/2.23 incr(cons(X, L)) -> cons(s(X), n__incr(activate(L))) 5.47/2.23 adx(nil) -> nil 5.47/2.23 adx(cons(X, L)) -> incr(cons(X, n__adx(activate(L)))) 5.47/2.23 nats -> adx(zeros) 5.47/2.23 zeros -> cons(0, n__zeros) 5.47/2.23 head(cons(X, L)) -> X 5.47/2.23 tail(cons(X, L)) -> activate(L) 5.47/2.23 incr(X) -> n__incr(X) 5.47/2.23 adx(X) -> n__adx(X) 5.47/2.23 zeros -> n__zeros 5.47/2.23 activate(n__incr(X)) -> incr(activate(X)) 5.47/2.23 activate(n__adx(X)) -> adx(activate(X)) 5.47/2.23 activate(n__zeros) -> zeros 5.47/2.23 activate(X) -> X 5.47/2.23 5.47/2.23 S is empty. 5.47/2.23 Rewrite Strategy: INNERMOST 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (3) DecreasingLoopProof (LOWER BOUND(ID)) 5.47/2.23 The following loop(s) give(s) rise to the lower bound Omega(n^1): 5.47/2.23 5.47/2.23 The rewrite sequence 5.47/2.23 5.47/2.23 activate(n__adx(X)) ->^+ adx(activate(X)) 5.47/2.23 5.47/2.23 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 5.47/2.23 5.47/2.23 The pumping substitution is [X / n__adx(X)]. 5.47/2.23 5.47/2.23 The result substitution is [ ]. 5.47/2.23 5.47/2.23 5.47/2.23 5.47/2.23 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (4) 5.47/2.23 Complex Obligation (BEST) 5.47/2.23 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (5) 5.47/2.23 Obligation: 5.47/2.23 Proved the lower bound n^1 for the following obligation: 5.47/2.23 5.47/2.23 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 5.47/2.23 5.47/2.23 5.47/2.23 The TRS R consists of the following rules: 5.47/2.23 5.47/2.23 incr(nil) -> nil 5.47/2.23 incr(cons(X, L)) -> cons(s(X), n__incr(activate(L))) 5.47/2.23 adx(nil) -> nil 5.47/2.23 adx(cons(X, L)) -> incr(cons(X, n__adx(activate(L)))) 5.47/2.23 nats -> adx(zeros) 5.47/2.23 zeros -> cons(0, n__zeros) 5.47/2.23 head(cons(X, L)) -> X 5.47/2.23 tail(cons(X, L)) -> activate(L) 5.47/2.23 incr(X) -> n__incr(X) 5.47/2.23 adx(X) -> n__adx(X) 5.47/2.23 zeros -> n__zeros 5.47/2.23 activate(n__incr(X)) -> incr(activate(X)) 5.47/2.23 activate(n__adx(X)) -> adx(activate(X)) 5.47/2.23 activate(n__zeros) -> zeros 5.47/2.23 activate(X) -> X 5.47/2.23 5.47/2.23 S is empty. 5.47/2.23 Rewrite Strategy: INNERMOST 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (6) LowerBoundPropagationProof (FINISHED) 5.47/2.23 Propagated lower bound. 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (7) 5.47/2.23 BOUNDS(n^1, INF) 5.47/2.23 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (8) 5.47/2.23 Obligation: 5.47/2.23 Analyzing the following TRS for decreasing loops: 5.47/2.23 5.47/2.23 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(INF, INF). 5.47/2.23 5.47/2.23 5.47/2.23 The TRS R consists of the following rules: 5.47/2.23 5.47/2.23 incr(nil) -> nil 5.47/2.23 incr(cons(X, L)) -> cons(s(X), n__incr(activate(L))) 5.47/2.23 adx(nil) -> nil 5.47/2.23 adx(cons(X, L)) -> incr(cons(X, n__adx(activate(L)))) 5.47/2.23 nats -> adx(zeros) 5.47/2.23 zeros -> cons(0, n__zeros) 5.47/2.23 head(cons(X, L)) -> X 5.47/2.23 tail(cons(X, L)) -> activate(L) 5.47/2.23 incr(X) -> n__incr(X) 5.47/2.23 adx(X) -> n__adx(X) 5.47/2.23 zeros -> n__zeros 5.47/2.23 activate(n__incr(X)) -> incr(activate(X)) 5.47/2.23 activate(n__adx(X)) -> adx(activate(X)) 5.47/2.23 activate(n__zeros) -> zeros 5.47/2.23 activate(X) -> X 5.47/2.23 5.47/2.23 S is empty. 5.47/2.23 Rewrite Strategy: INNERMOST 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (9) InfiniteLowerBoundProof (FINISHED) 5.47/2.23 The following loop proves infinite runtime complexity: 5.47/2.23 5.47/2.23 The rewrite sequence 5.47/2.23 5.47/2.23 activate(n__adx(cons(X1_0, n__zeros))) ->^+ cons(s(X1_0), n__incr(activate(n__adx(cons(0, n__zeros))))) 5.47/2.23 5.47/2.23 gives rise to a decreasing loop by considering the right hand sides subterm at position [1,0]. 5.47/2.23 5.47/2.23 The pumping substitution is [ ]. 5.47/2.23 5.47/2.23 The result substitution is [X1_0 / 0]. 5.47/2.23 5.47/2.23 5.47/2.23 5.47/2.23 5.47/2.23 ---------------------------------------- 5.47/2.23 5.47/2.23 (10) 5.47/2.23 BOUNDS(INF, INF) 5.61/2.27 EOF