1144.16/291.57 WORST_CASE(Omega(n^1), ?) 1144.16/291.59 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 1144.16/291.59 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 1144.16/291.59 1144.16/291.59 1144.16/291.59 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1144.16/291.59 1144.16/291.59 (0) CpxTRS 1144.16/291.59 (1) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 1144.16/291.59 (2) TRS for Loop Detection 1144.16/291.59 (3) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 1144.16/291.59 (4) BEST 1144.16/291.59 (5) proven lower bound 1144.16/291.59 (6) LowerBoundPropagationProof [FINISHED, 0 ms] 1144.16/291.59 (7) BOUNDS(n^1, INF) 1144.16/291.59 (8) TRS for Loop Detection 1144.16/291.59 1144.16/291.59 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (0) 1144.16/291.59 Obligation: 1144.16/291.59 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1144.16/291.59 1144.16/291.59 1144.16/291.59 The TRS R consists of the following rules: 1144.16/291.59 1144.16/291.59 active(zeros) -> mark(cons(0, zeros)) 1144.16/291.59 active(U11(tt)) -> mark(tt) 1144.16/291.59 active(U21(tt)) -> mark(tt) 1144.16/291.59 active(U31(tt)) -> mark(tt) 1144.16/291.59 active(U41(tt, V2)) -> mark(U42(isNatIList(V2))) 1144.16/291.59 active(U42(tt)) -> mark(tt) 1144.16/291.59 active(U51(tt, V2)) -> mark(U52(isNatList(V2))) 1144.16/291.59 active(U52(tt)) -> mark(tt) 1144.16/291.59 active(U61(tt, L, N)) -> mark(U62(isNat(N), L)) 1144.16/291.59 active(U62(tt, L)) -> mark(s(length(L))) 1144.16/291.59 active(isNat(0)) -> mark(tt) 1144.16/291.59 active(isNat(length(V1))) -> mark(U11(isNatList(V1))) 1144.16/291.59 active(isNat(s(V1))) -> mark(U21(isNat(V1))) 1144.16/291.59 active(isNatIList(V)) -> mark(U31(isNatList(V))) 1144.16/291.59 active(isNatIList(zeros)) -> mark(tt) 1144.16/291.59 active(isNatIList(cons(V1, V2))) -> mark(U41(isNat(V1), V2)) 1144.16/291.59 active(isNatList(nil)) -> mark(tt) 1144.16/291.59 active(isNatList(cons(V1, V2))) -> mark(U51(isNat(V1), V2)) 1144.16/291.59 active(length(nil)) -> mark(0) 1144.16/291.59 active(length(cons(N, L))) -> mark(U61(isNatList(L), L, N)) 1144.16/291.59 active(cons(X1, X2)) -> cons(active(X1), X2) 1144.16/291.59 active(U11(X)) -> U11(active(X)) 1144.16/291.59 active(U21(X)) -> U21(active(X)) 1144.16/291.59 active(U31(X)) -> U31(active(X)) 1144.16/291.59 active(U41(X1, X2)) -> U41(active(X1), X2) 1144.16/291.59 active(U42(X)) -> U42(active(X)) 1144.16/291.59 active(U51(X1, X2)) -> U51(active(X1), X2) 1144.16/291.59 active(U52(X)) -> U52(active(X)) 1144.16/291.59 active(U61(X1, X2, X3)) -> U61(active(X1), X2, X3) 1144.16/291.59 active(U62(X1, X2)) -> U62(active(X1), X2) 1144.16/291.59 active(s(X)) -> s(active(X)) 1144.16/291.59 active(length(X)) -> length(active(X)) 1144.16/291.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 1144.16/291.59 U11(mark(X)) -> mark(U11(X)) 1144.16/291.59 U21(mark(X)) -> mark(U21(X)) 1144.16/291.59 U31(mark(X)) -> mark(U31(X)) 1144.16/291.59 U41(mark(X1), X2) -> mark(U41(X1, X2)) 1144.16/291.59 U42(mark(X)) -> mark(U42(X)) 1144.16/291.59 U51(mark(X1), X2) -> mark(U51(X1, X2)) 1144.16/291.59 U52(mark(X)) -> mark(U52(X)) 1144.16/291.59 U61(mark(X1), X2, X3) -> mark(U61(X1, X2, X3)) 1144.16/291.59 U62(mark(X1), X2) -> mark(U62(X1, X2)) 1144.16/291.59 s(mark(X)) -> mark(s(X)) 1144.16/291.59 length(mark(X)) -> mark(length(X)) 1144.16/291.59 proper(zeros) -> ok(zeros) 1144.16/291.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1144.16/291.59 proper(0) -> ok(0) 1144.16/291.59 proper(U11(X)) -> U11(proper(X)) 1144.16/291.59 proper(tt) -> ok(tt) 1144.16/291.59 proper(U21(X)) -> U21(proper(X)) 1144.16/291.59 proper(U31(X)) -> U31(proper(X)) 1144.16/291.59 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 1144.16/291.59 proper(U42(X)) -> U42(proper(X)) 1144.16/291.59 proper(isNatIList(X)) -> isNatIList(proper(X)) 1144.16/291.59 proper(U51(X1, X2)) -> U51(proper(X1), proper(X2)) 1144.16/291.59 proper(U52(X)) -> U52(proper(X)) 1144.16/291.59 proper(isNatList(X)) -> isNatList(proper(X)) 1144.16/291.59 proper(U61(X1, X2, X3)) -> U61(proper(X1), proper(X2), proper(X3)) 1144.16/291.59 proper(U62(X1, X2)) -> U62(proper(X1), proper(X2)) 1144.16/291.59 proper(isNat(X)) -> isNat(proper(X)) 1144.16/291.59 proper(s(X)) -> s(proper(X)) 1144.16/291.59 proper(length(X)) -> length(proper(X)) 1144.16/291.59 proper(nil) -> ok(nil) 1144.16/291.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1144.16/291.59 U11(ok(X)) -> ok(U11(X)) 1144.16/291.59 U21(ok(X)) -> ok(U21(X)) 1144.16/291.59 U31(ok(X)) -> ok(U31(X)) 1144.16/291.59 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 1144.16/291.59 U42(ok(X)) -> ok(U42(X)) 1144.16/291.59 isNatIList(ok(X)) -> ok(isNatIList(X)) 1144.16/291.59 U51(ok(X1), ok(X2)) -> ok(U51(X1, X2)) 1144.16/291.59 U52(ok(X)) -> ok(U52(X)) 1144.16/291.59 isNatList(ok(X)) -> ok(isNatList(X)) 1144.16/291.59 U61(ok(X1), ok(X2), ok(X3)) -> ok(U61(X1, X2, X3)) 1144.16/291.59 U62(ok(X1), ok(X2)) -> ok(U62(X1, X2)) 1144.16/291.59 isNat(ok(X)) -> ok(isNat(X)) 1144.16/291.59 s(ok(X)) -> ok(s(X)) 1144.16/291.59 length(ok(X)) -> ok(length(X)) 1144.16/291.59 top(mark(X)) -> top(proper(X)) 1144.16/291.59 top(ok(X)) -> top(active(X)) 1144.16/291.59 1144.16/291.59 S is empty. 1144.16/291.59 Rewrite Strategy: FULL 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (1) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 1144.16/291.59 Transformed a relative TRS into a decreasing-loop problem. 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (2) 1144.16/291.59 Obligation: 1144.16/291.59 Analyzing the following TRS for decreasing loops: 1144.16/291.59 1144.16/291.59 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1144.16/291.59 1144.16/291.59 1144.16/291.59 The TRS R consists of the following rules: 1144.16/291.59 1144.16/291.59 active(zeros) -> mark(cons(0, zeros)) 1144.16/291.59 active(U11(tt)) -> mark(tt) 1144.16/291.59 active(U21(tt)) -> mark(tt) 1144.16/291.59 active(U31(tt)) -> mark(tt) 1144.16/291.59 active(U41(tt, V2)) -> mark(U42(isNatIList(V2))) 1144.16/291.59 active(U42(tt)) -> mark(tt) 1144.16/291.59 active(U51(tt, V2)) -> mark(U52(isNatList(V2))) 1144.16/291.59 active(U52(tt)) -> mark(tt) 1144.16/291.59 active(U61(tt, L, N)) -> mark(U62(isNat(N), L)) 1144.16/291.59 active(U62(tt, L)) -> mark(s(length(L))) 1144.16/291.59 active(isNat(0)) -> mark(tt) 1144.16/291.59 active(isNat(length(V1))) -> mark(U11(isNatList(V1))) 1144.16/291.59 active(isNat(s(V1))) -> mark(U21(isNat(V1))) 1144.16/291.59 active(isNatIList(V)) -> mark(U31(isNatList(V))) 1144.16/291.59 active(isNatIList(zeros)) -> mark(tt) 1144.16/291.59 active(isNatIList(cons(V1, V2))) -> mark(U41(isNat(V1), V2)) 1144.16/291.59 active(isNatList(nil)) -> mark(tt) 1144.16/291.59 active(isNatList(cons(V1, V2))) -> mark(U51(isNat(V1), V2)) 1144.16/291.59 active(length(nil)) -> mark(0) 1144.16/291.59 active(length(cons(N, L))) -> mark(U61(isNatList(L), L, N)) 1144.16/291.59 active(cons(X1, X2)) -> cons(active(X1), X2) 1144.16/291.59 active(U11(X)) -> U11(active(X)) 1144.16/291.59 active(U21(X)) -> U21(active(X)) 1144.16/291.59 active(U31(X)) -> U31(active(X)) 1144.16/291.59 active(U41(X1, X2)) -> U41(active(X1), X2) 1144.16/291.59 active(U42(X)) -> U42(active(X)) 1144.16/291.59 active(U51(X1, X2)) -> U51(active(X1), X2) 1144.16/291.59 active(U52(X)) -> U52(active(X)) 1144.16/291.59 active(U61(X1, X2, X3)) -> U61(active(X1), X2, X3) 1144.16/291.59 active(U62(X1, X2)) -> U62(active(X1), X2) 1144.16/291.59 active(s(X)) -> s(active(X)) 1144.16/291.59 active(length(X)) -> length(active(X)) 1144.16/291.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 1144.16/291.59 U11(mark(X)) -> mark(U11(X)) 1144.16/291.59 U21(mark(X)) -> mark(U21(X)) 1144.16/291.59 U31(mark(X)) -> mark(U31(X)) 1144.16/291.59 U41(mark(X1), X2) -> mark(U41(X1, X2)) 1144.16/291.59 U42(mark(X)) -> mark(U42(X)) 1144.16/291.59 U51(mark(X1), X2) -> mark(U51(X1, X2)) 1144.16/291.59 U52(mark(X)) -> mark(U52(X)) 1144.16/291.59 U61(mark(X1), X2, X3) -> mark(U61(X1, X2, X3)) 1144.16/291.59 U62(mark(X1), X2) -> mark(U62(X1, X2)) 1144.16/291.59 s(mark(X)) -> mark(s(X)) 1144.16/291.59 length(mark(X)) -> mark(length(X)) 1144.16/291.59 proper(zeros) -> ok(zeros) 1144.16/291.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1144.16/291.59 proper(0) -> ok(0) 1144.16/291.59 proper(U11(X)) -> U11(proper(X)) 1144.16/291.59 proper(tt) -> ok(tt) 1144.16/291.59 proper(U21(X)) -> U21(proper(X)) 1144.16/291.59 proper(U31(X)) -> U31(proper(X)) 1144.16/291.59 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 1144.16/291.59 proper(U42(X)) -> U42(proper(X)) 1144.16/291.59 proper(isNatIList(X)) -> isNatIList(proper(X)) 1144.16/291.59 proper(U51(X1, X2)) -> U51(proper(X1), proper(X2)) 1144.16/291.59 proper(U52(X)) -> U52(proper(X)) 1144.16/291.59 proper(isNatList(X)) -> isNatList(proper(X)) 1144.16/291.59 proper(U61(X1, X2, X3)) -> U61(proper(X1), proper(X2), proper(X3)) 1144.16/291.59 proper(U62(X1, X2)) -> U62(proper(X1), proper(X2)) 1144.16/291.59 proper(isNat(X)) -> isNat(proper(X)) 1144.16/291.59 proper(s(X)) -> s(proper(X)) 1144.16/291.59 proper(length(X)) -> length(proper(X)) 1144.16/291.59 proper(nil) -> ok(nil) 1144.16/291.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1144.16/291.59 U11(ok(X)) -> ok(U11(X)) 1144.16/291.59 U21(ok(X)) -> ok(U21(X)) 1144.16/291.59 U31(ok(X)) -> ok(U31(X)) 1144.16/291.59 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 1144.16/291.59 U42(ok(X)) -> ok(U42(X)) 1144.16/291.59 isNatIList(ok(X)) -> ok(isNatIList(X)) 1144.16/291.59 U51(ok(X1), ok(X2)) -> ok(U51(X1, X2)) 1144.16/291.59 U52(ok(X)) -> ok(U52(X)) 1144.16/291.59 isNatList(ok(X)) -> ok(isNatList(X)) 1144.16/291.59 U61(ok(X1), ok(X2), ok(X3)) -> ok(U61(X1, X2, X3)) 1144.16/291.59 U62(ok(X1), ok(X2)) -> ok(U62(X1, X2)) 1144.16/291.59 isNat(ok(X)) -> ok(isNat(X)) 1144.16/291.59 s(ok(X)) -> ok(s(X)) 1144.16/291.59 length(ok(X)) -> ok(length(X)) 1144.16/291.59 top(mark(X)) -> top(proper(X)) 1144.16/291.59 top(ok(X)) -> top(active(X)) 1144.16/291.59 1144.16/291.59 S is empty. 1144.16/291.59 Rewrite Strategy: FULL 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (3) DecreasingLoopProof (LOWER BOUND(ID)) 1144.16/291.59 The following loop(s) give(s) rise to the lower bound Omega(n^1): 1144.16/291.59 1144.16/291.59 The rewrite sequence 1144.16/291.59 1144.16/291.59 U31(ok(X)) ->^+ ok(U31(X)) 1144.16/291.59 1144.16/291.59 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 1144.16/291.59 1144.16/291.59 The pumping substitution is [X / ok(X)]. 1144.16/291.59 1144.16/291.59 The result substitution is [ ]. 1144.16/291.59 1144.16/291.59 1144.16/291.59 1144.16/291.59 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (4) 1144.16/291.59 Complex Obligation (BEST) 1144.16/291.59 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (5) 1144.16/291.59 Obligation: 1144.16/291.59 Proved the lower bound n^1 for the following obligation: 1144.16/291.59 1144.16/291.59 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1144.16/291.59 1144.16/291.59 1144.16/291.59 The TRS R consists of the following rules: 1144.16/291.59 1144.16/291.59 active(zeros) -> mark(cons(0, zeros)) 1144.16/291.59 active(U11(tt)) -> mark(tt) 1144.16/291.59 active(U21(tt)) -> mark(tt) 1144.16/291.59 active(U31(tt)) -> mark(tt) 1144.16/291.59 active(U41(tt, V2)) -> mark(U42(isNatIList(V2))) 1144.16/291.59 active(U42(tt)) -> mark(tt) 1144.16/291.59 active(U51(tt, V2)) -> mark(U52(isNatList(V2))) 1144.16/291.59 active(U52(tt)) -> mark(tt) 1144.16/291.59 active(U61(tt, L, N)) -> mark(U62(isNat(N), L)) 1144.16/291.59 active(U62(tt, L)) -> mark(s(length(L))) 1144.16/291.59 active(isNat(0)) -> mark(tt) 1144.16/291.59 active(isNat(length(V1))) -> mark(U11(isNatList(V1))) 1144.16/291.59 active(isNat(s(V1))) -> mark(U21(isNat(V1))) 1144.16/291.59 active(isNatIList(V)) -> mark(U31(isNatList(V))) 1144.16/291.59 active(isNatIList(zeros)) -> mark(tt) 1144.16/291.59 active(isNatIList(cons(V1, V2))) -> mark(U41(isNat(V1), V2)) 1144.16/291.59 active(isNatList(nil)) -> mark(tt) 1144.16/291.59 active(isNatList(cons(V1, V2))) -> mark(U51(isNat(V1), V2)) 1144.16/291.59 active(length(nil)) -> mark(0) 1144.16/291.59 active(length(cons(N, L))) -> mark(U61(isNatList(L), L, N)) 1144.16/291.59 active(cons(X1, X2)) -> cons(active(X1), X2) 1144.16/291.59 active(U11(X)) -> U11(active(X)) 1144.16/291.59 active(U21(X)) -> U21(active(X)) 1144.16/291.59 active(U31(X)) -> U31(active(X)) 1144.16/291.59 active(U41(X1, X2)) -> U41(active(X1), X2) 1144.16/291.59 active(U42(X)) -> U42(active(X)) 1144.16/291.59 active(U51(X1, X2)) -> U51(active(X1), X2) 1144.16/291.59 active(U52(X)) -> U52(active(X)) 1144.16/291.59 active(U61(X1, X2, X3)) -> U61(active(X1), X2, X3) 1144.16/291.59 active(U62(X1, X2)) -> U62(active(X1), X2) 1144.16/291.59 active(s(X)) -> s(active(X)) 1144.16/291.59 active(length(X)) -> length(active(X)) 1144.16/291.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 1144.16/291.59 U11(mark(X)) -> mark(U11(X)) 1144.16/291.59 U21(mark(X)) -> mark(U21(X)) 1144.16/291.59 U31(mark(X)) -> mark(U31(X)) 1144.16/291.59 U41(mark(X1), X2) -> mark(U41(X1, X2)) 1144.16/291.59 U42(mark(X)) -> mark(U42(X)) 1144.16/291.59 U51(mark(X1), X2) -> mark(U51(X1, X2)) 1144.16/291.59 U52(mark(X)) -> mark(U52(X)) 1144.16/291.59 U61(mark(X1), X2, X3) -> mark(U61(X1, X2, X3)) 1144.16/291.59 U62(mark(X1), X2) -> mark(U62(X1, X2)) 1144.16/291.59 s(mark(X)) -> mark(s(X)) 1144.16/291.59 length(mark(X)) -> mark(length(X)) 1144.16/291.59 proper(zeros) -> ok(zeros) 1144.16/291.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1144.16/291.59 proper(0) -> ok(0) 1144.16/291.59 proper(U11(X)) -> U11(proper(X)) 1144.16/291.59 proper(tt) -> ok(tt) 1144.16/291.59 proper(U21(X)) -> U21(proper(X)) 1144.16/291.59 proper(U31(X)) -> U31(proper(X)) 1144.16/291.59 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 1144.16/291.59 proper(U42(X)) -> U42(proper(X)) 1144.16/291.59 proper(isNatIList(X)) -> isNatIList(proper(X)) 1144.16/291.59 proper(U51(X1, X2)) -> U51(proper(X1), proper(X2)) 1144.16/291.59 proper(U52(X)) -> U52(proper(X)) 1144.16/291.59 proper(isNatList(X)) -> isNatList(proper(X)) 1144.16/291.59 proper(U61(X1, X2, X3)) -> U61(proper(X1), proper(X2), proper(X3)) 1144.16/291.59 proper(U62(X1, X2)) -> U62(proper(X1), proper(X2)) 1144.16/291.59 proper(isNat(X)) -> isNat(proper(X)) 1144.16/291.59 proper(s(X)) -> s(proper(X)) 1144.16/291.59 proper(length(X)) -> length(proper(X)) 1144.16/291.59 proper(nil) -> ok(nil) 1144.16/291.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1144.16/291.59 U11(ok(X)) -> ok(U11(X)) 1144.16/291.59 U21(ok(X)) -> ok(U21(X)) 1144.16/291.59 U31(ok(X)) -> ok(U31(X)) 1144.16/291.59 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 1144.16/291.59 U42(ok(X)) -> ok(U42(X)) 1144.16/291.59 isNatIList(ok(X)) -> ok(isNatIList(X)) 1144.16/291.59 U51(ok(X1), ok(X2)) -> ok(U51(X1, X2)) 1144.16/291.59 U52(ok(X)) -> ok(U52(X)) 1144.16/291.59 isNatList(ok(X)) -> ok(isNatList(X)) 1144.16/291.59 U61(ok(X1), ok(X2), ok(X3)) -> ok(U61(X1, X2, X3)) 1144.16/291.59 U62(ok(X1), ok(X2)) -> ok(U62(X1, X2)) 1144.16/291.59 isNat(ok(X)) -> ok(isNat(X)) 1144.16/291.59 s(ok(X)) -> ok(s(X)) 1144.16/291.59 length(ok(X)) -> ok(length(X)) 1144.16/291.59 top(mark(X)) -> top(proper(X)) 1144.16/291.59 top(ok(X)) -> top(active(X)) 1144.16/291.59 1144.16/291.59 S is empty. 1144.16/291.59 Rewrite Strategy: FULL 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (6) LowerBoundPropagationProof (FINISHED) 1144.16/291.59 Propagated lower bound. 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (7) 1144.16/291.59 BOUNDS(n^1, INF) 1144.16/291.59 1144.16/291.59 ---------------------------------------- 1144.16/291.59 1144.16/291.59 (8) 1144.16/291.59 Obligation: 1144.16/291.59 Analyzing the following TRS for decreasing loops: 1144.16/291.59 1144.16/291.59 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1144.16/291.59 1144.16/291.59 1144.16/291.59 The TRS R consists of the following rules: 1144.16/291.59 1144.16/291.59 active(zeros) -> mark(cons(0, zeros)) 1144.16/291.59 active(U11(tt)) -> mark(tt) 1144.16/291.59 active(U21(tt)) -> mark(tt) 1144.16/291.59 active(U31(tt)) -> mark(tt) 1144.16/291.59 active(U41(tt, V2)) -> mark(U42(isNatIList(V2))) 1144.16/291.59 active(U42(tt)) -> mark(tt) 1144.16/291.59 active(U51(tt, V2)) -> mark(U52(isNatList(V2))) 1144.16/291.59 active(U52(tt)) -> mark(tt) 1144.16/291.59 active(U61(tt, L, N)) -> mark(U62(isNat(N), L)) 1144.16/291.59 active(U62(tt, L)) -> mark(s(length(L))) 1144.16/291.59 active(isNat(0)) -> mark(tt) 1144.16/291.59 active(isNat(length(V1))) -> mark(U11(isNatList(V1))) 1144.16/291.59 active(isNat(s(V1))) -> mark(U21(isNat(V1))) 1144.16/291.59 active(isNatIList(V)) -> mark(U31(isNatList(V))) 1144.16/291.59 active(isNatIList(zeros)) -> mark(tt) 1144.16/291.59 active(isNatIList(cons(V1, V2))) -> mark(U41(isNat(V1), V2)) 1144.16/291.59 active(isNatList(nil)) -> mark(tt) 1144.16/291.59 active(isNatList(cons(V1, V2))) -> mark(U51(isNat(V1), V2)) 1144.16/291.59 active(length(nil)) -> mark(0) 1144.16/291.59 active(length(cons(N, L))) -> mark(U61(isNatList(L), L, N)) 1144.16/291.59 active(cons(X1, X2)) -> cons(active(X1), X2) 1144.16/291.59 active(U11(X)) -> U11(active(X)) 1144.16/291.59 active(U21(X)) -> U21(active(X)) 1144.16/291.59 active(U31(X)) -> U31(active(X)) 1144.16/291.59 active(U41(X1, X2)) -> U41(active(X1), X2) 1144.16/291.59 active(U42(X)) -> U42(active(X)) 1144.16/291.59 active(U51(X1, X2)) -> U51(active(X1), X2) 1144.16/291.59 active(U52(X)) -> U52(active(X)) 1144.16/291.59 active(U61(X1, X2, X3)) -> U61(active(X1), X2, X3) 1144.16/291.59 active(U62(X1, X2)) -> U62(active(X1), X2) 1144.16/291.59 active(s(X)) -> s(active(X)) 1144.16/291.59 active(length(X)) -> length(active(X)) 1144.16/291.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 1144.16/291.59 U11(mark(X)) -> mark(U11(X)) 1144.16/291.59 U21(mark(X)) -> mark(U21(X)) 1144.16/291.59 U31(mark(X)) -> mark(U31(X)) 1144.16/291.59 U41(mark(X1), X2) -> mark(U41(X1, X2)) 1144.16/291.59 U42(mark(X)) -> mark(U42(X)) 1144.16/291.59 U51(mark(X1), X2) -> mark(U51(X1, X2)) 1144.16/291.59 U52(mark(X)) -> mark(U52(X)) 1144.16/291.59 U61(mark(X1), X2, X3) -> mark(U61(X1, X2, X3)) 1144.16/291.59 U62(mark(X1), X2) -> mark(U62(X1, X2)) 1144.16/291.59 s(mark(X)) -> mark(s(X)) 1144.16/291.59 length(mark(X)) -> mark(length(X)) 1144.16/291.59 proper(zeros) -> ok(zeros) 1144.16/291.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1144.16/291.59 proper(0) -> ok(0) 1144.16/291.59 proper(U11(X)) -> U11(proper(X)) 1144.16/291.59 proper(tt) -> ok(tt) 1144.16/291.59 proper(U21(X)) -> U21(proper(X)) 1144.16/291.59 proper(U31(X)) -> U31(proper(X)) 1144.16/291.59 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 1144.16/291.59 proper(U42(X)) -> U42(proper(X)) 1144.16/291.59 proper(isNatIList(X)) -> isNatIList(proper(X)) 1144.16/291.59 proper(U51(X1, X2)) -> U51(proper(X1), proper(X2)) 1144.16/291.59 proper(U52(X)) -> U52(proper(X)) 1144.16/291.59 proper(isNatList(X)) -> isNatList(proper(X)) 1144.16/291.59 proper(U61(X1, X2, X3)) -> U61(proper(X1), proper(X2), proper(X3)) 1144.16/291.59 proper(U62(X1, X2)) -> U62(proper(X1), proper(X2)) 1144.16/291.59 proper(isNat(X)) -> isNat(proper(X)) 1144.16/291.59 proper(s(X)) -> s(proper(X)) 1144.16/291.59 proper(length(X)) -> length(proper(X)) 1144.16/291.59 proper(nil) -> ok(nil) 1144.16/291.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1144.16/291.59 U11(ok(X)) -> ok(U11(X)) 1144.16/291.59 U21(ok(X)) -> ok(U21(X)) 1144.16/291.59 U31(ok(X)) -> ok(U31(X)) 1144.16/291.59 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 1144.16/291.59 U42(ok(X)) -> ok(U42(X)) 1144.16/291.59 isNatIList(ok(X)) -> ok(isNatIList(X)) 1144.16/291.59 U51(ok(X1), ok(X2)) -> ok(U51(X1, X2)) 1144.16/291.59 U52(ok(X)) -> ok(U52(X)) 1144.16/291.59 isNatList(ok(X)) -> ok(isNatList(X)) 1144.16/291.59 U61(ok(X1), ok(X2), ok(X3)) -> ok(U61(X1, X2, X3)) 1144.16/291.59 U62(ok(X1), ok(X2)) -> ok(U62(X1, X2)) 1144.16/291.59 isNat(ok(X)) -> ok(isNat(X)) 1144.16/291.59 s(ok(X)) -> ok(s(X)) 1144.16/291.59 length(ok(X)) -> ok(length(X)) 1144.16/291.59 top(mark(X)) -> top(proper(X)) 1144.16/291.59 top(ok(X)) -> top(active(X)) 1144.16/291.59 1144.16/291.59 S is empty. 1144.16/291.59 Rewrite Strategy: FULL 1144.32/291.66 EOF