MAYBE 1042.62/297.05 MAYBE 1042.62/297.05 1042.62/297.05 We are left with following problem, upon which TcT provides the 1042.62/297.05 certificate MAYBE. 1042.62/297.05 1042.62/297.05 Strict Trs: 1042.62/297.05 { active(zeros()) -> mark(cons(0(), zeros())) 1042.62/297.05 , active(cons(X1, X2)) -> cons(active(X1), X2) 1042.62/297.05 , active(U11(X1, X2)) -> U11(active(X1), X2) 1042.62/297.05 , active(U11(tt(), L)) -> mark(s(length(L))) 1042.62/297.05 , active(s(X)) -> s(active(X)) 1042.62/297.05 , active(length(X)) -> length(active(X)) 1042.62/297.05 , active(length(cons(N, L))) -> 1042.62/297.05 mark(U11(and(isNatList(L), isNat(N)), L)) 1042.62/297.05 , active(length(nil())) -> mark(0()) 1042.62/297.05 , active(U21(X)) -> U21(active(X)) 1042.62/297.05 , active(U21(tt())) -> mark(nil()) 1042.62/297.05 , active(U31(X1, X2, X3, X4)) -> U31(active(X1), X2, X3, X4) 1042.62/297.05 , active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))) 1042.62/297.05 , active(take(X1, X2)) -> take(X1, active(X2)) 1042.62/297.05 , active(take(X1, X2)) -> take(active(X1), X2) 1042.62/297.05 , active(take(0(), IL)) -> mark(U21(isNatIList(IL))) 1042.62/297.05 , active(take(s(M), cons(N, IL))) -> 1042.62/297.05 mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.05 , active(and(X1, X2)) -> and(active(X1), X2) 1042.62/297.05 , active(and(tt(), X)) -> mark(X) 1042.62/297.05 , active(isNat(0())) -> mark(tt()) 1042.62/297.05 , active(isNat(s(V1))) -> mark(isNat(V1)) 1042.62/297.05 , active(isNat(length(V1))) -> mark(isNatList(V1)) 1042.62/297.05 , active(isNatList(cons(V1, V2))) -> 1042.62/297.05 mark(and(isNat(V1), isNatList(V2))) 1042.62/297.05 , active(isNatList(nil())) -> mark(tt()) 1042.62/297.05 , active(isNatList(take(V1, V2))) -> 1042.62/297.05 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.05 , active(isNatIList(V)) -> mark(isNatList(V)) 1042.62/297.05 , active(isNatIList(zeros())) -> mark(tt()) 1042.62/297.05 , active(isNatIList(cons(V1, V2))) -> 1042.62/297.05 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.05 , cons(mark(X1), X2) -> mark(cons(X1, X2)) 1042.62/297.05 , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1042.62/297.05 , U11(mark(X1), X2) -> mark(U11(X1, X2)) 1042.62/297.05 , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2)) 1042.62/297.05 , s(mark(X)) -> mark(s(X)) 1042.62/297.05 , s(ok(X)) -> ok(s(X)) 1042.62/297.05 , length(mark(X)) -> mark(length(X)) 1042.62/297.05 , length(ok(X)) -> ok(length(X)) 1042.62/297.05 , U21(mark(X)) -> mark(U21(X)) 1042.62/297.05 , U21(ok(X)) -> ok(U21(X)) 1042.62/297.05 , U31(mark(X1), X2, X3, X4) -> mark(U31(X1, X2, X3, X4)) 1042.62/297.05 , U31(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U31(X1, X2, X3, X4)) 1042.62/297.05 , take(X1, mark(X2)) -> mark(take(X1, X2)) 1042.62/297.05 , take(mark(X1), X2) -> mark(take(X1, X2)) 1042.62/297.05 , take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 1042.62/297.05 , and(mark(X1), X2) -> mark(and(X1, X2)) 1042.62/297.05 , and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 1042.62/297.05 , isNat(ok(X)) -> ok(isNat(X)) 1042.62/297.05 , isNatList(ok(X)) -> ok(isNatList(X)) 1042.62/297.05 , isNatIList(ok(X)) -> ok(isNatIList(X)) 1042.62/297.05 , proper(zeros()) -> ok(zeros()) 1042.62/297.05 , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1042.62/297.05 , proper(0()) -> ok(0()) 1042.62/297.05 , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2)) 1042.62/297.05 , proper(tt()) -> ok(tt()) 1042.62/297.05 , proper(s(X)) -> s(proper(X)) 1042.62/297.05 , proper(length(X)) -> length(proper(X)) 1042.62/297.05 , proper(U21(X)) -> U21(proper(X)) 1042.62/297.05 , proper(nil()) -> ok(nil()) 1042.62/297.05 , proper(U31(X1, X2, X3, X4)) -> 1042.62/297.05 U31(proper(X1), proper(X2), proper(X3), proper(X4)) 1042.62/297.05 , proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 1042.62/297.05 , proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 1042.62/297.05 , proper(isNat(X)) -> isNat(proper(X)) 1042.62/297.05 , proper(isNatList(X)) -> isNatList(proper(X)) 1042.62/297.05 , proper(isNatIList(X)) -> isNatIList(proper(X)) 1042.62/297.05 , top(mark(X)) -> top(proper(X)) 1042.62/297.05 , top(ok(X)) -> top(active(X)) } 1042.62/297.05 Obligation: 1042.62/297.05 runtime complexity 1042.62/297.05 Answer: 1042.62/297.05 MAYBE 1042.62/297.05 1042.62/297.05 None of the processors succeeded. 1042.62/297.05 1042.62/297.05 Details of failed attempt(s): 1042.62/297.05 ----------------------------- 1042.62/297.05 1) 'With Problem ... (timeout of 297 seconds)' failed due to the 1042.62/297.05 following reason: 1042.62/297.05 1042.62/297.05 Computation stopped due to timeout after 297.0 seconds. 1042.62/297.05 1042.62/297.05 2) 'Best' failed due to the following reason: 1042.62/297.05 1042.62/297.05 None of the processors succeeded. 1042.62/297.05 1042.62/297.05 Details of failed attempt(s): 1042.62/297.05 ----------------------------- 1042.62/297.05 1) 'With Problem ... (timeout of 148 seconds) (timeout of 297 1042.62/297.05 seconds)' failed due to the following reason: 1042.62/297.05 1042.62/297.05 Computation stopped due to timeout after 148.0 seconds. 1042.62/297.05 1042.62/297.05 2) 'Best' failed due to the following reason: 1042.62/297.05 1042.62/297.05 None of the processors succeeded. 1042.62/297.05 1042.62/297.05 Details of failed attempt(s): 1042.62/297.05 ----------------------------- 1042.62/297.05 1) 'Polynomial Path Order (PS) (timeout of 297 seconds)' failed due 1042.62/297.05 to the following reason: 1042.62/297.05 1042.62/297.05 The processor is inapplicable, reason: 1042.62/297.05 Processor only applicable for innermost runtime complexity analysis 1042.62/297.05 1042.62/297.05 2) 'bsearch-popstar (timeout of 297 seconds)' failed due to the 1042.62/297.05 following reason: 1042.62/297.05 1042.62/297.05 The processor is inapplicable, reason: 1042.62/297.05 Processor only applicable for innermost runtime complexity analysis 1042.62/297.05 1042.62/297.05 1042.62/297.05 3) 'Fastest (timeout of 24 seconds) (timeout of 297 seconds)' 1042.62/297.05 failed due to the following reason: 1042.62/297.05 1042.62/297.05 None of the processors succeeded. 1042.62/297.05 1042.62/297.05 Details of failed attempt(s): 1042.62/297.05 ----------------------------- 1042.62/297.05 1) 'Bounds with minimal-enrichment and initial automaton 'match'' 1042.62/297.05 failed due to the following reason: 1042.62/297.05 1042.62/297.05 match-boundness of the problem could not be verified. 1042.62/297.05 1042.62/297.05 2) 'Bounds with perSymbol-enrichment and initial automaton 'match'' 1042.62/297.05 failed due to the following reason: 1042.62/297.05 1042.62/297.05 match-boundness of the problem could not be verified. 1042.62/297.05 1042.62/297.05 1042.62/297.05 1042.62/297.05 3) 'Weak Dependency Pairs (timeout of 297 seconds)' failed due to 1042.62/297.05 the following reason: 1042.62/297.05 1042.62/297.05 We add the following weak dependency pairs: 1042.62/297.05 1042.62/297.05 Strict DPs: 1042.62/297.05 { active^#(zeros()) -> c_1(cons^#(0(), zeros())) 1042.62/297.05 , active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2)) 1042.62/297.05 , active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2)) 1042.62/297.05 , active^#(U11(tt(), L)) -> c_4(s^#(length(L))) 1042.62/297.05 , active^#(s(X)) -> c_5(s^#(active(X))) 1042.62/297.05 , active^#(length(X)) -> c_6(length^#(active(X))) 1042.62/297.05 , active^#(length(cons(N, L))) -> 1042.62/297.05 c_7(U11^#(and(isNatList(L), isNat(N)), L)) 1042.62/297.05 , active^#(length(nil())) -> c_8() 1042.62/297.05 , active^#(U21(X)) -> c_9(U21^#(active(X))) 1042.62/297.05 , active^#(U21(tt())) -> c_10() 1042.62/297.05 , active^#(U31(X1, X2, X3, X4)) -> 1042.62/297.05 c_11(U31^#(active(X1), X2, X3, X4)) 1042.62/297.05 , active^#(U31(tt(), IL, M, N)) -> c_12(cons^#(N, take(M, IL))) 1042.62/297.05 , active^#(take(X1, X2)) -> c_13(take^#(X1, active(X2))) 1042.62/297.05 , active^#(take(X1, X2)) -> c_14(take^#(active(X1), X2)) 1042.62/297.05 , active^#(take(0(), IL)) -> c_15(U21^#(isNatIList(IL))) 1042.62/297.05 , active^#(take(s(M), cons(N, IL))) -> 1042.62/297.05 c_16(U31^#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.05 , active^#(and(X1, X2)) -> c_17(and^#(active(X1), X2)) 1042.62/297.05 , active^#(and(tt(), X)) -> c_18(X) 1042.62/297.05 , active^#(isNat(0())) -> c_19() 1042.62/297.05 , active^#(isNat(s(V1))) -> c_20(isNat^#(V1)) 1042.62/297.05 , active^#(isNat(length(V1))) -> c_21(isNatList^#(V1)) 1042.62/297.05 , active^#(isNatList(cons(V1, V2))) -> 1042.62/297.05 c_22(and^#(isNat(V1), isNatList(V2))) 1042.62/297.05 , active^#(isNatList(nil())) -> c_23() 1042.62/297.05 , active^#(isNatList(take(V1, V2))) -> 1042.62/297.05 c_24(and^#(isNat(V1), isNatIList(V2))) 1042.62/297.05 , active^#(isNatIList(V)) -> c_25(isNatList^#(V)) 1042.62/297.05 , active^#(isNatIList(zeros())) -> c_26() 1042.62/297.05 , active^#(isNatIList(cons(V1, V2))) -> 1042.62/297.05 c_27(and^#(isNat(V1), isNatIList(V2))) 1042.62/297.05 , cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) 1042.62/297.05 , cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) 1042.62/297.05 , U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) 1042.62/297.05 , U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) 1042.62/297.05 , s^#(mark(X)) -> c_32(s^#(X)) 1042.62/297.05 , s^#(ok(X)) -> c_33(s^#(X)) 1042.62/297.05 , length^#(mark(X)) -> c_34(length^#(X)) 1042.62/297.05 , length^#(ok(X)) -> c_35(length^#(X)) 1042.62/297.05 , U21^#(mark(X)) -> c_36(U21^#(X)) 1042.62/297.05 , U21^#(ok(X)) -> c_37(U21^#(X)) 1042.62/297.05 , U31^#(mark(X1), X2, X3, X4) -> c_38(U31^#(X1, X2, X3, X4)) 1042.62/297.05 , U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.05 c_39(U31^#(X1, X2, X3, X4)) 1042.62/297.05 , take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) 1042.62/297.05 , take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) 1042.62/297.05 , take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) 1042.62/297.05 , and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) 1042.62/297.05 , and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) 1042.62/297.05 , isNat^#(ok(X)) -> c_45(isNat^#(X)) 1042.62/297.05 , isNatList^#(ok(X)) -> c_46(isNatList^#(X)) 1042.62/297.05 , isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) 1042.62/297.05 , proper^#(zeros()) -> c_48() 1042.62/297.05 , proper^#(cons(X1, X2)) -> c_49(cons^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(0()) -> c_50() 1042.62/297.05 , proper^#(U11(X1, X2)) -> c_51(U11^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(tt()) -> c_52() 1042.62/297.05 , proper^#(s(X)) -> c_53(s^#(proper(X))) 1042.62/297.05 , proper^#(length(X)) -> c_54(length^#(proper(X))) 1042.62/297.05 , proper^#(U21(X)) -> c_55(U21^#(proper(X))) 1042.62/297.05 , proper^#(nil()) -> c_56() 1042.62/297.05 , proper^#(U31(X1, X2, X3, X4)) -> 1042.62/297.05 c_57(U31^#(proper(X1), proper(X2), proper(X3), proper(X4))) 1042.62/297.05 , proper^#(take(X1, X2)) -> c_58(take^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(and(X1, X2)) -> c_59(and^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(isNat(X)) -> c_60(isNat^#(proper(X))) 1042.62/297.05 , proper^#(isNatList(X)) -> c_61(isNatList^#(proper(X))) 1042.62/297.05 , proper^#(isNatIList(X)) -> c_62(isNatIList^#(proper(X))) 1042.62/297.05 , top^#(mark(X)) -> c_63(top^#(proper(X))) 1042.62/297.05 , top^#(ok(X)) -> c_64(top^#(active(X))) } 1042.62/297.05 1042.62/297.05 and mark the set of starting terms. 1042.62/297.05 1042.62/297.05 We are left with following problem, upon which TcT provides the 1042.62/297.05 certificate MAYBE. 1042.62/297.05 1042.62/297.05 Strict DPs: 1042.62/297.05 { active^#(zeros()) -> c_1(cons^#(0(), zeros())) 1042.62/297.05 , active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2)) 1042.62/297.05 , active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2)) 1042.62/297.05 , active^#(U11(tt(), L)) -> c_4(s^#(length(L))) 1042.62/297.05 , active^#(s(X)) -> c_5(s^#(active(X))) 1042.62/297.05 , active^#(length(X)) -> c_6(length^#(active(X))) 1042.62/297.05 , active^#(length(cons(N, L))) -> 1042.62/297.05 c_7(U11^#(and(isNatList(L), isNat(N)), L)) 1042.62/297.05 , active^#(length(nil())) -> c_8() 1042.62/297.05 , active^#(U21(X)) -> c_9(U21^#(active(X))) 1042.62/297.05 , active^#(U21(tt())) -> c_10() 1042.62/297.05 , active^#(U31(X1, X2, X3, X4)) -> 1042.62/297.05 c_11(U31^#(active(X1), X2, X3, X4)) 1042.62/297.05 , active^#(U31(tt(), IL, M, N)) -> c_12(cons^#(N, take(M, IL))) 1042.62/297.05 , active^#(take(X1, X2)) -> c_13(take^#(X1, active(X2))) 1042.62/297.05 , active^#(take(X1, X2)) -> c_14(take^#(active(X1), X2)) 1042.62/297.05 , active^#(take(0(), IL)) -> c_15(U21^#(isNatIList(IL))) 1042.62/297.05 , active^#(take(s(M), cons(N, IL))) -> 1042.62/297.05 c_16(U31^#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.05 , active^#(and(X1, X2)) -> c_17(and^#(active(X1), X2)) 1042.62/297.05 , active^#(and(tt(), X)) -> c_18(X) 1042.62/297.05 , active^#(isNat(0())) -> c_19() 1042.62/297.05 , active^#(isNat(s(V1))) -> c_20(isNat^#(V1)) 1042.62/297.05 , active^#(isNat(length(V1))) -> c_21(isNatList^#(V1)) 1042.62/297.05 , active^#(isNatList(cons(V1, V2))) -> 1042.62/297.05 c_22(and^#(isNat(V1), isNatList(V2))) 1042.62/297.05 , active^#(isNatList(nil())) -> c_23() 1042.62/297.05 , active^#(isNatList(take(V1, V2))) -> 1042.62/297.05 c_24(and^#(isNat(V1), isNatIList(V2))) 1042.62/297.05 , active^#(isNatIList(V)) -> c_25(isNatList^#(V)) 1042.62/297.05 , active^#(isNatIList(zeros())) -> c_26() 1042.62/297.05 , active^#(isNatIList(cons(V1, V2))) -> 1042.62/297.05 c_27(and^#(isNat(V1), isNatIList(V2))) 1042.62/297.05 , cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) 1042.62/297.05 , cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) 1042.62/297.05 , U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) 1042.62/297.05 , U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) 1042.62/297.05 , s^#(mark(X)) -> c_32(s^#(X)) 1042.62/297.05 , s^#(ok(X)) -> c_33(s^#(X)) 1042.62/297.05 , length^#(mark(X)) -> c_34(length^#(X)) 1042.62/297.05 , length^#(ok(X)) -> c_35(length^#(X)) 1042.62/297.05 , U21^#(mark(X)) -> c_36(U21^#(X)) 1042.62/297.05 , U21^#(ok(X)) -> c_37(U21^#(X)) 1042.62/297.05 , U31^#(mark(X1), X2, X3, X4) -> c_38(U31^#(X1, X2, X3, X4)) 1042.62/297.05 , U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.05 c_39(U31^#(X1, X2, X3, X4)) 1042.62/297.05 , take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) 1042.62/297.05 , take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) 1042.62/297.05 , take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) 1042.62/297.05 , and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) 1042.62/297.05 , and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) 1042.62/297.05 , isNat^#(ok(X)) -> c_45(isNat^#(X)) 1042.62/297.05 , isNatList^#(ok(X)) -> c_46(isNatList^#(X)) 1042.62/297.05 , isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) 1042.62/297.05 , proper^#(zeros()) -> c_48() 1042.62/297.05 , proper^#(cons(X1, X2)) -> c_49(cons^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(0()) -> c_50() 1042.62/297.05 , proper^#(U11(X1, X2)) -> c_51(U11^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(tt()) -> c_52() 1042.62/297.05 , proper^#(s(X)) -> c_53(s^#(proper(X))) 1042.62/297.05 , proper^#(length(X)) -> c_54(length^#(proper(X))) 1042.62/297.05 , proper^#(U21(X)) -> c_55(U21^#(proper(X))) 1042.62/297.05 , proper^#(nil()) -> c_56() 1042.62/297.05 , proper^#(U31(X1, X2, X3, X4)) -> 1042.62/297.05 c_57(U31^#(proper(X1), proper(X2), proper(X3), proper(X4))) 1042.62/297.05 , proper^#(take(X1, X2)) -> c_58(take^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(and(X1, X2)) -> c_59(and^#(proper(X1), proper(X2))) 1042.62/297.05 , proper^#(isNat(X)) -> c_60(isNat^#(proper(X))) 1042.62/297.05 , proper^#(isNatList(X)) -> c_61(isNatList^#(proper(X))) 1042.62/297.05 , proper^#(isNatIList(X)) -> c_62(isNatIList^#(proper(X))) 1042.62/297.05 , top^#(mark(X)) -> c_63(top^#(proper(X))) 1042.62/297.05 , top^#(ok(X)) -> c_64(top^#(active(X))) } 1042.62/297.05 Strict Trs: 1042.62/297.05 { active(zeros()) -> mark(cons(0(), zeros())) 1042.62/297.05 , active(cons(X1, X2)) -> cons(active(X1), X2) 1042.62/297.05 , active(U11(X1, X2)) -> U11(active(X1), X2) 1042.62/297.05 , active(U11(tt(), L)) -> mark(s(length(L))) 1042.62/297.05 , active(s(X)) -> s(active(X)) 1042.62/297.05 , active(length(X)) -> length(active(X)) 1042.62/297.05 , active(length(cons(N, L))) -> 1042.62/297.05 mark(U11(and(isNatList(L), isNat(N)), L)) 1042.62/297.05 , active(length(nil())) -> mark(0()) 1042.62/297.05 , active(U21(X)) -> U21(active(X)) 1042.62/297.05 , active(U21(tt())) -> mark(nil()) 1042.62/297.05 , active(U31(X1, X2, X3, X4)) -> U31(active(X1), X2, X3, X4) 1042.62/297.05 , active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))) 1042.62/297.05 , active(take(X1, X2)) -> take(X1, active(X2)) 1042.62/297.05 , active(take(X1, X2)) -> take(active(X1), X2) 1042.62/297.05 , active(take(0(), IL)) -> mark(U21(isNatIList(IL))) 1042.62/297.05 , active(take(s(M), cons(N, IL))) -> 1042.62/297.05 mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.05 , active(and(X1, X2)) -> and(active(X1), X2) 1042.62/297.05 , active(and(tt(), X)) -> mark(X) 1042.62/297.05 , active(isNat(0())) -> mark(tt()) 1042.62/297.05 , active(isNat(s(V1))) -> mark(isNat(V1)) 1042.62/297.05 , active(isNat(length(V1))) -> mark(isNatList(V1)) 1042.62/297.05 , active(isNatList(cons(V1, V2))) -> 1042.62/297.05 mark(and(isNat(V1), isNatList(V2))) 1042.62/297.05 , active(isNatList(nil())) -> mark(tt()) 1042.62/297.05 , active(isNatList(take(V1, V2))) -> 1042.62/297.05 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.05 , active(isNatIList(V)) -> mark(isNatList(V)) 1042.62/297.05 , active(isNatIList(zeros())) -> mark(tt()) 1042.62/297.05 , active(isNatIList(cons(V1, V2))) -> 1042.62/297.05 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.05 , cons(mark(X1), X2) -> mark(cons(X1, X2)) 1042.62/297.05 , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1042.62/297.05 , U11(mark(X1), X2) -> mark(U11(X1, X2)) 1042.62/297.05 , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2)) 1042.62/297.05 , s(mark(X)) -> mark(s(X)) 1042.62/297.05 , s(ok(X)) -> ok(s(X)) 1042.62/297.05 , length(mark(X)) -> mark(length(X)) 1042.62/297.05 , length(ok(X)) -> ok(length(X)) 1042.62/297.05 , U21(mark(X)) -> mark(U21(X)) 1042.62/297.05 , U21(ok(X)) -> ok(U21(X)) 1042.62/297.05 , U31(mark(X1), X2, X3, X4) -> mark(U31(X1, X2, X3, X4)) 1042.62/297.05 , U31(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U31(X1, X2, X3, X4)) 1042.62/297.05 , take(X1, mark(X2)) -> mark(take(X1, X2)) 1042.62/297.05 , take(mark(X1), X2) -> mark(take(X1, X2)) 1042.62/297.05 , take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 1042.62/297.05 , and(mark(X1), X2) -> mark(and(X1, X2)) 1042.62/297.05 , and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 1042.62/297.05 , isNat(ok(X)) -> ok(isNat(X)) 1042.62/297.05 , isNatList(ok(X)) -> ok(isNatList(X)) 1042.62/297.05 , isNatIList(ok(X)) -> ok(isNatIList(X)) 1042.62/297.05 , proper(zeros()) -> ok(zeros()) 1042.62/297.05 , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1042.62/297.05 , proper(0()) -> ok(0()) 1042.62/297.05 , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2)) 1042.62/297.05 , proper(tt()) -> ok(tt()) 1042.62/297.05 , proper(s(X)) -> s(proper(X)) 1042.62/297.05 , proper(length(X)) -> length(proper(X)) 1042.62/297.05 , proper(U21(X)) -> U21(proper(X)) 1042.62/297.05 , proper(nil()) -> ok(nil()) 1042.62/297.05 , proper(U31(X1, X2, X3, X4)) -> 1042.62/297.05 U31(proper(X1), proper(X2), proper(X3), proper(X4)) 1042.62/297.05 , proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 1042.62/297.05 , proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 1042.62/297.05 , proper(isNat(X)) -> isNat(proper(X)) 1042.62/297.05 , proper(isNatList(X)) -> isNatList(proper(X)) 1042.62/297.05 , proper(isNatIList(X)) -> isNatIList(proper(X)) 1042.62/297.05 , top(mark(X)) -> top(proper(X)) 1042.62/297.05 , top(ok(X)) -> top(active(X)) } 1042.62/297.05 Obligation: 1042.62/297.05 runtime complexity 1042.62/297.05 Answer: 1042.62/297.05 MAYBE 1042.62/297.05 1042.62/297.05 Consider the dependency graph: 1042.62/297.05 1042.62/297.05 1: active^#(zeros()) -> c_1(cons^#(0(), zeros())) 1042.62/297.05 1042.62/297.05 2: active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2)) 1042.62/297.05 -->_1 cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) :29 1042.62/297.05 -->_1 cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) :28 1042.62/297.06 1042.62/297.06 3: active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2)) 1042.62/297.06 -->_1 U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) :31 1042.62/297.06 -->_1 U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) :30 1042.62/297.06 1042.62/297.06 4: active^#(U11(tt(), L)) -> c_4(s^#(length(L))) 1042.62/297.06 -->_1 s^#(ok(X)) -> c_33(s^#(X)) :33 1042.62/297.06 -->_1 s^#(mark(X)) -> c_32(s^#(X)) :32 1042.62/297.06 1042.62/297.06 5: active^#(s(X)) -> c_5(s^#(active(X))) 1042.62/297.06 -->_1 s^#(ok(X)) -> c_33(s^#(X)) :33 1042.62/297.06 -->_1 s^#(mark(X)) -> c_32(s^#(X)) :32 1042.62/297.06 1042.62/297.06 6: active^#(length(X)) -> c_6(length^#(active(X))) 1042.62/297.06 -->_1 length^#(ok(X)) -> c_35(length^#(X)) :35 1042.62/297.06 -->_1 length^#(mark(X)) -> c_34(length^#(X)) :34 1042.62/297.06 1042.62/297.06 7: active^#(length(cons(N, L))) -> 1042.62/297.06 c_7(U11^#(and(isNatList(L), isNat(N)), L)) 1042.62/297.06 -->_1 U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) :31 1042.62/297.06 -->_1 U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) :30 1042.62/297.06 1042.62/297.06 8: active^#(length(nil())) -> c_8() 1042.62/297.06 1042.62/297.06 9: active^#(U21(X)) -> c_9(U21^#(active(X))) 1042.62/297.06 -->_1 U21^#(ok(X)) -> c_37(U21^#(X)) :37 1042.62/297.06 -->_1 U21^#(mark(X)) -> c_36(U21^#(X)) :36 1042.62/297.06 1042.62/297.06 10: active^#(U21(tt())) -> c_10() 1042.62/297.06 1042.62/297.06 11: active^#(U31(X1, X2, X3, X4)) -> 1042.62/297.06 c_11(U31^#(active(X1), X2, X3, X4)) 1042.62/297.06 -->_1 U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.06 c_39(U31^#(X1, X2, X3, X4)) :39 1042.62/297.06 -->_1 U31^#(mark(X1), X2, X3, X4) -> 1042.62/297.06 c_38(U31^#(X1, X2, X3, X4)) :38 1042.62/297.06 1042.62/297.06 12: active^#(U31(tt(), IL, M, N)) -> c_12(cons^#(N, take(M, IL))) 1042.62/297.06 -->_1 cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) :29 1042.62/297.06 -->_1 cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) :28 1042.62/297.06 1042.62/297.06 13: active^#(take(X1, X2)) -> c_13(take^#(X1, active(X2))) 1042.62/297.06 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.06 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.06 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.06 1042.62/297.06 14: active^#(take(X1, X2)) -> c_14(take^#(active(X1), X2)) 1042.62/297.06 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.06 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.06 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.06 1042.62/297.06 15: active^#(take(0(), IL)) -> c_15(U21^#(isNatIList(IL))) 1042.62/297.06 -->_1 U21^#(ok(X)) -> c_37(U21^#(X)) :37 1042.62/297.06 -->_1 U21^#(mark(X)) -> c_36(U21^#(X)) :36 1042.62/297.06 1042.62/297.06 16: active^#(take(s(M), cons(N, IL))) -> 1042.62/297.06 c_16(U31^#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.06 -->_1 U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.06 c_39(U31^#(X1, X2, X3, X4)) :39 1042.62/297.06 -->_1 U31^#(mark(X1), X2, X3, X4) -> 1042.62/297.06 c_38(U31^#(X1, X2, X3, X4)) :38 1042.62/297.06 1042.62/297.06 17: active^#(and(X1, X2)) -> c_17(and^#(active(X1), X2)) 1042.62/297.06 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.06 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.06 1042.62/297.06 18: active^#(and(tt(), X)) -> c_18(X) 1042.62/297.06 -->_1 top^#(ok(X)) -> c_64(top^#(active(X))) :64 1042.62/297.06 -->_1 top^#(mark(X)) -> c_63(top^#(proper(X))) :63 1042.62/297.06 -->_1 proper^#(isNatIList(X)) -> c_62(isNatIList^#(proper(X))) :62 1042.62/297.06 -->_1 proper^#(isNatList(X)) -> c_61(isNatList^#(proper(X))) :61 1042.62/297.06 -->_1 proper^#(isNat(X)) -> c_60(isNat^#(proper(X))) :60 1042.62/297.06 -->_1 proper^#(and(X1, X2)) -> 1042.62/297.06 c_59(and^#(proper(X1), proper(X2))) :59 1042.62/297.06 -->_1 proper^#(take(X1, X2)) -> 1042.62/297.06 c_58(take^#(proper(X1), proper(X2))) :58 1042.62/297.06 -->_1 proper^#(U31(X1, X2, X3, X4)) -> 1042.62/297.06 c_57(U31^#(proper(X1), proper(X2), proper(X3), proper(X4))) :57 1042.62/297.06 -->_1 proper^#(U21(X)) -> c_55(U21^#(proper(X))) :55 1042.62/297.06 -->_1 proper^#(length(X)) -> c_54(length^#(proper(X))) :54 1042.62/297.06 -->_1 proper^#(s(X)) -> c_53(s^#(proper(X))) :53 1042.62/297.06 -->_1 proper^#(U11(X1, X2)) -> 1042.62/297.06 c_51(U11^#(proper(X1), proper(X2))) :51 1042.62/297.06 -->_1 proper^#(cons(X1, X2)) -> 1042.62/297.06 c_49(cons^#(proper(X1), proper(X2))) :49 1042.62/297.06 -->_1 isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) :47 1042.62/297.06 -->_1 isNatList^#(ok(X)) -> c_46(isNatList^#(X)) :46 1042.62/297.06 -->_1 isNat^#(ok(X)) -> c_45(isNat^#(X)) :45 1042.62/297.06 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.06 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.06 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.06 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.06 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.06 -->_1 U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.06 c_39(U31^#(X1, X2, X3, X4)) :39 1042.62/297.06 -->_1 U31^#(mark(X1), X2, X3, X4) -> 1042.62/297.06 c_38(U31^#(X1, X2, X3, X4)) :38 1042.62/297.06 -->_1 U21^#(ok(X)) -> c_37(U21^#(X)) :37 1042.62/297.06 -->_1 U21^#(mark(X)) -> c_36(U21^#(X)) :36 1042.62/297.06 -->_1 length^#(ok(X)) -> c_35(length^#(X)) :35 1042.62/297.06 -->_1 length^#(mark(X)) -> c_34(length^#(X)) :34 1042.62/297.06 -->_1 s^#(ok(X)) -> c_33(s^#(X)) :33 1042.62/297.06 -->_1 s^#(mark(X)) -> c_32(s^#(X)) :32 1042.62/297.06 -->_1 U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) :31 1042.62/297.06 -->_1 U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) :30 1042.62/297.06 -->_1 cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) :29 1042.62/297.06 -->_1 cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) :28 1042.62/297.06 -->_1 active^#(isNatIList(cons(V1, V2))) -> 1042.62/297.06 c_27(and^#(isNat(V1), isNatIList(V2))) :27 1042.62/297.06 -->_1 active^#(isNatIList(V)) -> c_25(isNatList^#(V)) :25 1042.62/297.06 -->_1 active^#(isNatList(take(V1, V2))) -> 1042.62/297.06 c_24(and^#(isNat(V1), isNatIList(V2))) :24 1042.62/297.06 -->_1 active^#(isNatList(cons(V1, V2))) -> 1042.62/297.06 c_22(and^#(isNat(V1), isNatList(V2))) :22 1042.62/297.06 -->_1 active^#(isNat(length(V1))) -> c_21(isNatList^#(V1)) :21 1042.62/297.06 -->_1 active^#(isNat(s(V1))) -> c_20(isNat^#(V1)) :20 1042.62/297.06 -->_1 proper^#(nil()) -> c_56() :56 1042.62/297.06 -->_1 proper^#(tt()) -> c_52() :52 1042.62/297.06 -->_1 proper^#(0()) -> c_50() :50 1042.62/297.06 -->_1 proper^#(zeros()) -> c_48() :48 1042.62/297.06 -->_1 active^#(isNatIList(zeros())) -> c_26() :26 1042.62/297.06 -->_1 active^#(isNatList(nil())) -> c_23() :23 1042.62/297.06 -->_1 active^#(isNat(0())) -> c_19() :19 1042.62/297.06 -->_1 active^#(and(tt(), X)) -> c_18(X) :18 1042.62/297.06 -->_1 active^#(and(X1, X2)) -> c_17(and^#(active(X1), X2)) :17 1042.62/297.06 -->_1 active^#(take(s(M), cons(N, IL))) -> 1042.62/297.06 c_16(U31^#(and(isNatIList(IL), and(isNat(M), isNat(N))), 1042.62/297.06 IL, 1042.62/297.06 M, 1042.62/297.06 N)) :16 1042.62/297.06 -->_1 active^#(take(0(), IL)) -> c_15(U21^#(isNatIList(IL))) :15 1042.62/297.06 -->_1 active^#(take(X1, X2)) -> c_14(take^#(active(X1), X2)) :14 1042.62/297.06 -->_1 active^#(take(X1, X2)) -> c_13(take^#(X1, active(X2))) :13 1042.62/297.06 -->_1 active^#(U31(tt(), IL, M, N)) -> 1042.62/297.06 c_12(cons^#(N, take(M, IL))) :12 1042.62/297.06 -->_1 active^#(U31(X1, X2, X3, X4)) -> 1042.62/297.06 c_11(U31^#(active(X1), X2, X3, X4)) :11 1042.62/297.06 -->_1 active^#(U21(tt())) -> c_10() :10 1042.62/297.06 -->_1 active^#(U21(X)) -> c_9(U21^#(active(X))) :9 1042.62/297.06 -->_1 active^#(length(nil())) -> c_8() :8 1042.62/297.06 -->_1 active^#(length(cons(N, L))) -> 1042.62/297.06 c_7(U11^#(and(isNatList(L), isNat(N)), L)) :7 1042.62/297.06 -->_1 active^#(length(X)) -> c_6(length^#(active(X))) :6 1042.62/297.06 -->_1 active^#(s(X)) -> c_5(s^#(active(X))) :5 1042.62/297.06 -->_1 active^#(U11(tt(), L)) -> c_4(s^#(length(L))) :4 1042.62/297.06 -->_1 active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2)) :3 1042.62/297.06 -->_1 active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2)) :2 1042.62/297.06 -->_1 active^#(zeros()) -> c_1(cons^#(0(), zeros())) :1 1042.62/297.06 1042.62/297.06 19: active^#(isNat(0())) -> c_19() 1042.62/297.06 1042.62/297.06 20: active^#(isNat(s(V1))) -> c_20(isNat^#(V1)) 1042.62/297.06 -->_1 isNat^#(ok(X)) -> c_45(isNat^#(X)) :45 1042.62/297.06 1042.62/297.06 21: active^#(isNat(length(V1))) -> c_21(isNatList^#(V1)) 1042.62/297.06 -->_1 isNatList^#(ok(X)) -> c_46(isNatList^#(X)) :46 1042.62/297.06 1042.62/297.06 22: active^#(isNatList(cons(V1, V2))) -> 1042.62/297.06 c_22(and^#(isNat(V1), isNatList(V2))) 1042.62/297.06 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.06 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.06 1042.62/297.06 23: active^#(isNatList(nil())) -> c_23() 1042.62/297.06 1042.62/297.06 24: active^#(isNatList(take(V1, V2))) -> 1042.62/297.06 c_24(and^#(isNat(V1), isNatIList(V2))) 1042.62/297.06 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.07 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.07 1042.62/297.07 25: active^#(isNatIList(V)) -> c_25(isNatList^#(V)) 1042.62/297.07 -->_1 isNatList^#(ok(X)) -> c_46(isNatList^#(X)) :46 1042.62/297.07 1042.62/297.07 26: active^#(isNatIList(zeros())) -> c_26() 1042.62/297.07 1042.62/297.07 27: active^#(isNatIList(cons(V1, V2))) -> 1042.62/297.07 c_27(and^#(isNat(V1), isNatIList(V2))) 1042.62/297.07 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.07 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.07 1042.62/297.07 28: cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) 1042.62/297.07 -->_1 cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) :29 1042.62/297.07 -->_1 cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) :28 1042.62/297.07 1042.62/297.07 29: cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) 1042.62/297.07 -->_1 cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) :29 1042.62/297.07 -->_1 cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) :28 1042.62/297.07 1042.62/297.07 30: U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) 1042.62/297.07 -->_1 U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) :31 1042.62/297.07 -->_1 U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) :30 1042.62/297.07 1042.62/297.07 31: U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) 1042.62/297.07 -->_1 U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) :31 1042.62/297.07 -->_1 U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) :30 1042.62/297.07 1042.62/297.07 32: s^#(mark(X)) -> c_32(s^#(X)) 1042.62/297.07 -->_1 s^#(ok(X)) -> c_33(s^#(X)) :33 1042.62/297.07 -->_1 s^#(mark(X)) -> c_32(s^#(X)) :32 1042.62/297.07 1042.62/297.07 33: s^#(ok(X)) -> c_33(s^#(X)) 1042.62/297.07 -->_1 s^#(ok(X)) -> c_33(s^#(X)) :33 1042.62/297.07 -->_1 s^#(mark(X)) -> c_32(s^#(X)) :32 1042.62/297.07 1042.62/297.07 34: length^#(mark(X)) -> c_34(length^#(X)) 1042.62/297.07 -->_1 length^#(ok(X)) -> c_35(length^#(X)) :35 1042.62/297.07 -->_1 length^#(mark(X)) -> c_34(length^#(X)) :34 1042.62/297.07 1042.62/297.07 35: length^#(ok(X)) -> c_35(length^#(X)) 1042.62/297.07 -->_1 length^#(ok(X)) -> c_35(length^#(X)) :35 1042.62/297.07 -->_1 length^#(mark(X)) -> c_34(length^#(X)) :34 1042.62/297.07 1042.62/297.07 36: U21^#(mark(X)) -> c_36(U21^#(X)) 1042.62/297.07 -->_1 U21^#(ok(X)) -> c_37(U21^#(X)) :37 1042.62/297.07 -->_1 U21^#(mark(X)) -> c_36(U21^#(X)) :36 1042.62/297.07 1042.62/297.07 37: U21^#(ok(X)) -> c_37(U21^#(X)) 1042.62/297.07 -->_1 U21^#(ok(X)) -> c_37(U21^#(X)) :37 1042.62/297.07 -->_1 U21^#(mark(X)) -> c_36(U21^#(X)) :36 1042.62/297.07 1042.62/297.07 38: U31^#(mark(X1), X2, X3, X4) -> c_38(U31^#(X1, X2, X3, X4)) 1042.62/297.07 -->_1 U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) :39 1042.62/297.07 -->_1 U31^#(mark(X1), X2, X3, X4) -> 1042.62/297.07 c_38(U31^#(X1, X2, X3, X4)) :38 1042.62/297.07 1042.62/297.07 39: U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) 1042.62/297.07 -->_1 U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) :39 1042.62/297.07 -->_1 U31^#(mark(X1), X2, X3, X4) -> 1042.62/297.07 c_38(U31^#(X1, X2, X3, X4)) :38 1042.62/297.07 1042.62/297.07 40: take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) 1042.62/297.07 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.07 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.07 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.07 1042.62/297.07 41: take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) 1042.62/297.07 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.07 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.07 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.07 1042.62/297.07 42: take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) 1042.62/297.07 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.07 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.07 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.07 1042.62/297.07 43: and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) 1042.62/297.07 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.07 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.07 1042.62/297.07 44: and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) 1042.62/297.07 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.07 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.07 1042.62/297.07 45: isNat^#(ok(X)) -> c_45(isNat^#(X)) 1042.62/297.07 -->_1 isNat^#(ok(X)) -> c_45(isNat^#(X)) :45 1042.62/297.07 1042.62/297.07 46: isNatList^#(ok(X)) -> c_46(isNatList^#(X)) 1042.62/297.07 -->_1 isNatList^#(ok(X)) -> c_46(isNatList^#(X)) :46 1042.62/297.07 1042.62/297.07 47: isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) 1042.62/297.07 -->_1 isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) :47 1042.62/297.07 1042.62/297.07 48: proper^#(zeros()) -> c_48() 1042.62/297.07 1042.62/297.07 49: proper^#(cons(X1, X2)) -> c_49(cons^#(proper(X1), proper(X2))) 1042.62/297.07 -->_1 cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) :29 1042.62/297.07 -->_1 cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) :28 1042.62/297.07 1042.62/297.07 50: proper^#(0()) -> c_50() 1042.62/297.07 1042.62/297.07 51: proper^#(U11(X1, X2)) -> c_51(U11^#(proper(X1), proper(X2))) 1042.62/297.07 -->_1 U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) :31 1042.62/297.07 -->_1 U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) :30 1042.62/297.07 1042.62/297.07 52: proper^#(tt()) -> c_52() 1042.62/297.07 1042.62/297.07 53: proper^#(s(X)) -> c_53(s^#(proper(X))) 1042.62/297.07 -->_1 s^#(ok(X)) -> c_33(s^#(X)) :33 1042.62/297.07 -->_1 s^#(mark(X)) -> c_32(s^#(X)) :32 1042.62/297.07 1042.62/297.07 54: proper^#(length(X)) -> c_54(length^#(proper(X))) 1042.62/297.07 -->_1 length^#(ok(X)) -> c_35(length^#(X)) :35 1042.62/297.07 -->_1 length^#(mark(X)) -> c_34(length^#(X)) :34 1042.62/297.07 1042.62/297.07 55: proper^#(U21(X)) -> c_55(U21^#(proper(X))) 1042.62/297.07 -->_1 U21^#(ok(X)) -> c_37(U21^#(X)) :37 1042.62/297.07 -->_1 U21^#(mark(X)) -> c_36(U21^#(X)) :36 1042.62/297.07 1042.62/297.07 56: proper^#(nil()) -> c_56() 1042.62/297.07 1042.62/297.07 57: proper^#(U31(X1, X2, X3, X4)) -> 1042.62/297.07 c_57(U31^#(proper(X1), proper(X2), proper(X3), proper(X4))) 1042.62/297.07 -->_1 U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) :39 1042.62/297.07 -->_1 U31^#(mark(X1), X2, X3, X4) -> 1042.62/297.07 c_38(U31^#(X1, X2, X3, X4)) :38 1042.62/297.07 1042.62/297.07 58: proper^#(take(X1, X2)) -> c_58(take^#(proper(X1), proper(X2))) 1042.62/297.07 -->_1 take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) :42 1042.62/297.07 -->_1 take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) :41 1042.62/297.07 -->_1 take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) :40 1042.62/297.07 1042.62/297.07 59: proper^#(and(X1, X2)) -> c_59(and^#(proper(X1), proper(X2))) 1042.62/297.07 -->_1 and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) :44 1042.62/297.07 -->_1 and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) :43 1042.62/297.07 1042.62/297.07 60: proper^#(isNat(X)) -> c_60(isNat^#(proper(X))) 1042.62/297.07 -->_1 isNat^#(ok(X)) -> c_45(isNat^#(X)) :45 1042.62/297.07 1042.62/297.07 61: proper^#(isNatList(X)) -> c_61(isNatList^#(proper(X))) 1042.62/297.07 -->_1 isNatList^#(ok(X)) -> c_46(isNatList^#(X)) :46 1042.62/297.07 1042.62/297.07 62: proper^#(isNatIList(X)) -> c_62(isNatIList^#(proper(X))) 1042.62/297.07 -->_1 isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) :47 1042.62/297.07 1042.62/297.07 63: top^#(mark(X)) -> c_63(top^#(proper(X))) 1042.62/297.07 -->_1 top^#(ok(X)) -> c_64(top^#(active(X))) :64 1042.62/297.07 -->_1 top^#(mark(X)) -> c_63(top^#(proper(X))) :63 1042.62/297.07 1042.62/297.07 64: top^#(ok(X)) -> c_64(top^#(active(X))) 1042.62/297.07 -->_1 top^#(ok(X)) -> c_64(top^#(active(X))) :64 1042.62/297.07 -->_1 top^#(mark(X)) -> c_63(top^#(proper(X))) :63 1042.62/297.07 1042.62/297.07 1042.62/297.07 Only the nodes 1042.62/297.07 {1,28,29,30,31,32,33,34,35,36,37,38,39,40,42,41,43,44,45,46,47,48,50,52,56,63,64} 1042.62/297.07 are reachable from nodes 1042.62/297.07 {1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,56,63,64} 1042.62/297.07 that start derivation from marked basic terms. The nodes not 1042.62/297.07 reachable are removed from the problem. 1042.62/297.07 1042.62/297.07 We are left with following problem, upon which TcT provides the 1042.62/297.07 certificate MAYBE. 1042.62/297.07 1042.62/297.07 Strict DPs: 1042.62/297.07 { active^#(zeros()) -> c_1(cons^#(0(), zeros())) 1042.62/297.07 , cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) 1042.62/297.07 , cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) 1042.62/297.07 , U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) 1042.62/297.07 , U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) 1042.62/297.07 , s^#(mark(X)) -> c_32(s^#(X)) 1042.62/297.07 , s^#(ok(X)) -> c_33(s^#(X)) 1042.62/297.07 , length^#(mark(X)) -> c_34(length^#(X)) 1042.62/297.07 , length^#(ok(X)) -> c_35(length^#(X)) 1042.62/297.07 , U21^#(mark(X)) -> c_36(U21^#(X)) 1042.62/297.07 , U21^#(ok(X)) -> c_37(U21^#(X)) 1042.62/297.07 , U31^#(mark(X1), X2, X3, X4) -> c_38(U31^#(X1, X2, X3, X4)) 1042.62/297.07 , U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) 1042.62/297.07 , take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) 1042.62/297.07 , take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) 1042.62/297.07 , take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) 1042.62/297.07 , and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) 1042.62/297.07 , and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) 1042.62/297.07 , isNat^#(ok(X)) -> c_45(isNat^#(X)) 1042.62/297.07 , isNatList^#(ok(X)) -> c_46(isNatList^#(X)) 1042.62/297.07 , isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) 1042.62/297.07 , proper^#(zeros()) -> c_48() 1042.62/297.07 , proper^#(0()) -> c_50() 1042.62/297.07 , proper^#(tt()) -> c_52() 1042.62/297.07 , proper^#(nil()) -> c_56() 1042.62/297.07 , top^#(mark(X)) -> c_63(top^#(proper(X))) 1042.62/297.07 , top^#(ok(X)) -> c_64(top^#(active(X))) } 1042.62/297.07 Strict Trs: 1042.62/297.07 { active(zeros()) -> mark(cons(0(), zeros())) 1042.62/297.07 , active(cons(X1, X2)) -> cons(active(X1), X2) 1042.62/297.07 , active(U11(X1, X2)) -> U11(active(X1), X2) 1042.62/297.07 , active(U11(tt(), L)) -> mark(s(length(L))) 1042.62/297.07 , active(s(X)) -> s(active(X)) 1042.62/297.07 , active(length(X)) -> length(active(X)) 1042.62/297.07 , active(length(cons(N, L))) -> 1042.62/297.07 mark(U11(and(isNatList(L), isNat(N)), L)) 1042.62/297.07 , active(length(nil())) -> mark(0()) 1042.62/297.07 , active(U21(X)) -> U21(active(X)) 1042.62/297.07 , active(U21(tt())) -> mark(nil()) 1042.62/297.07 , active(U31(X1, X2, X3, X4)) -> U31(active(X1), X2, X3, X4) 1042.62/297.07 , active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))) 1042.62/297.07 , active(take(X1, X2)) -> take(X1, active(X2)) 1042.62/297.07 , active(take(X1, X2)) -> take(active(X1), X2) 1042.62/297.07 , active(take(0(), IL)) -> mark(U21(isNatIList(IL))) 1042.62/297.07 , active(take(s(M), cons(N, IL))) -> 1042.62/297.07 mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.07 , active(and(X1, X2)) -> and(active(X1), X2) 1042.62/297.07 , active(and(tt(), X)) -> mark(X) 1042.62/297.07 , active(isNat(0())) -> mark(tt()) 1042.62/297.07 , active(isNat(s(V1))) -> mark(isNat(V1)) 1042.62/297.07 , active(isNat(length(V1))) -> mark(isNatList(V1)) 1042.62/297.07 , active(isNatList(cons(V1, V2))) -> 1042.62/297.07 mark(and(isNat(V1), isNatList(V2))) 1042.62/297.07 , active(isNatList(nil())) -> mark(tt()) 1042.62/297.07 , active(isNatList(take(V1, V2))) -> 1042.62/297.07 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.07 , active(isNatIList(V)) -> mark(isNatList(V)) 1042.62/297.07 , active(isNatIList(zeros())) -> mark(tt()) 1042.62/297.07 , active(isNatIList(cons(V1, V2))) -> 1042.62/297.07 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.07 , cons(mark(X1), X2) -> mark(cons(X1, X2)) 1042.62/297.07 , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1042.62/297.07 , U11(mark(X1), X2) -> mark(U11(X1, X2)) 1042.62/297.07 , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2)) 1042.62/297.07 , s(mark(X)) -> mark(s(X)) 1042.62/297.07 , s(ok(X)) -> ok(s(X)) 1042.62/297.07 , length(mark(X)) -> mark(length(X)) 1042.62/297.07 , length(ok(X)) -> ok(length(X)) 1042.62/297.07 , U21(mark(X)) -> mark(U21(X)) 1042.62/297.07 , U21(ok(X)) -> ok(U21(X)) 1042.62/297.07 , U31(mark(X1), X2, X3, X4) -> mark(U31(X1, X2, X3, X4)) 1042.62/297.07 , U31(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U31(X1, X2, X3, X4)) 1042.62/297.07 , take(X1, mark(X2)) -> mark(take(X1, X2)) 1042.62/297.07 , take(mark(X1), X2) -> mark(take(X1, X2)) 1042.62/297.07 , take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 1042.62/297.07 , and(mark(X1), X2) -> mark(and(X1, X2)) 1042.62/297.07 , and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 1042.62/297.07 , isNat(ok(X)) -> ok(isNat(X)) 1042.62/297.07 , isNatList(ok(X)) -> ok(isNatList(X)) 1042.62/297.07 , isNatIList(ok(X)) -> ok(isNatIList(X)) 1042.62/297.07 , proper(zeros()) -> ok(zeros()) 1042.62/297.07 , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1042.62/297.07 , proper(0()) -> ok(0()) 1042.62/297.07 , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2)) 1042.62/297.07 , proper(tt()) -> ok(tt()) 1042.62/297.07 , proper(s(X)) -> s(proper(X)) 1042.62/297.07 , proper(length(X)) -> length(proper(X)) 1042.62/297.07 , proper(U21(X)) -> U21(proper(X)) 1042.62/297.07 , proper(nil()) -> ok(nil()) 1042.62/297.07 , proper(U31(X1, X2, X3, X4)) -> 1042.62/297.07 U31(proper(X1), proper(X2), proper(X3), proper(X4)) 1042.62/297.07 , proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 1042.62/297.07 , proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 1042.62/297.07 , proper(isNat(X)) -> isNat(proper(X)) 1042.62/297.07 , proper(isNatList(X)) -> isNatList(proper(X)) 1042.62/297.07 , proper(isNatIList(X)) -> isNatIList(proper(X)) 1042.62/297.07 , top(mark(X)) -> top(proper(X)) 1042.62/297.07 , top(ok(X)) -> top(active(X)) } 1042.62/297.07 Obligation: 1042.62/297.07 runtime complexity 1042.62/297.07 Answer: 1042.62/297.07 MAYBE 1042.62/297.07 1042.62/297.07 We estimate the number of application of {1,22,23,24,25} by 1042.62/297.07 applications of Pre({1,22,23,24,25}) = {}. Here rules are labeled 1042.62/297.07 as follows: 1042.62/297.07 1042.62/297.07 DPs: 1042.62/297.07 { 1: active^#(zeros()) -> c_1(cons^#(0(), zeros())) 1042.62/297.07 , 2: cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) 1042.62/297.07 , 3: cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) 1042.62/297.07 , 4: U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) 1042.62/297.07 , 5: U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) 1042.62/297.07 , 6: s^#(mark(X)) -> c_32(s^#(X)) 1042.62/297.07 , 7: s^#(ok(X)) -> c_33(s^#(X)) 1042.62/297.07 , 8: length^#(mark(X)) -> c_34(length^#(X)) 1042.62/297.07 , 9: length^#(ok(X)) -> c_35(length^#(X)) 1042.62/297.07 , 10: U21^#(mark(X)) -> c_36(U21^#(X)) 1042.62/297.07 , 11: U21^#(ok(X)) -> c_37(U21^#(X)) 1042.62/297.07 , 12: U31^#(mark(X1), X2, X3, X4) -> c_38(U31^#(X1, X2, X3, X4)) 1042.62/297.07 , 13: U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) 1042.62/297.07 , 14: take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) 1042.62/297.07 , 15: take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) 1042.62/297.07 , 16: take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) 1042.62/297.07 , 17: and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) 1042.62/297.07 , 18: and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) 1042.62/297.07 , 19: isNat^#(ok(X)) -> c_45(isNat^#(X)) 1042.62/297.07 , 20: isNatList^#(ok(X)) -> c_46(isNatList^#(X)) 1042.62/297.07 , 21: isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) 1042.62/297.07 , 22: proper^#(zeros()) -> c_48() 1042.62/297.07 , 23: proper^#(0()) -> c_50() 1042.62/297.07 , 24: proper^#(tt()) -> c_52() 1042.62/297.07 , 25: proper^#(nil()) -> c_56() 1042.62/297.07 , 26: top^#(mark(X)) -> c_63(top^#(proper(X))) 1042.62/297.07 , 27: top^#(ok(X)) -> c_64(top^#(active(X))) } 1042.62/297.07 1042.62/297.07 We are left with following problem, upon which TcT provides the 1042.62/297.07 certificate MAYBE. 1042.62/297.07 1042.62/297.07 Strict DPs: 1042.62/297.07 { cons^#(mark(X1), X2) -> c_28(cons^#(X1, X2)) 1042.62/297.07 , cons^#(ok(X1), ok(X2)) -> c_29(cons^#(X1, X2)) 1042.62/297.07 , U11^#(mark(X1), X2) -> c_30(U11^#(X1, X2)) 1042.62/297.07 , U11^#(ok(X1), ok(X2)) -> c_31(U11^#(X1, X2)) 1042.62/297.07 , s^#(mark(X)) -> c_32(s^#(X)) 1042.62/297.07 , s^#(ok(X)) -> c_33(s^#(X)) 1042.62/297.07 , length^#(mark(X)) -> c_34(length^#(X)) 1042.62/297.07 , length^#(ok(X)) -> c_35(length^#(X)) 1042.62/297.07 , U21^#(mark(X)) -> c_36(U21^#(X)) 1042.62/297.07 , U21^#(ok(X)) -> c_37(U21^#(X)) 1042.62/297.07 , U31^#(mark(X1), X2, X3, X4) -> c_38(U31^#(X1, X2, X3, X4)) 1042.62/297.07 , U31^#(ok(X1), ok(X2), ok(X3), ok(X4)) -> 1042.62/297.07 c_39(U31^#(X1, X2, X3, X4)) 1042.62/297.07 , take^#(X1, mark(X2)) -> c_40(take^#(X1, X2)) 1042.62/297.07 , take^#(mark(X1), X2) -> c_41(take^#(X1, X2)) 1042.62/297.07 , take^#(ok(X1), ok(X2)) -> c_42(take^#(X1, X2)) 1042.62/297.07 , and^#(mark(X1), X2) -> c_43(and^#(X1, X2)) 1042.62/297.07 , and^#(ok(X1), ok(X2)) -> c_44(and^#(X1, X2)) 1042.62/297.07 , isNat^#(ok(X)) -> c_45(isNat^#(X)) 1042.62/297.07 , isNatList^#(ok(X)) -> c_46(isNatList^#(X)) 1042.62/297.07 , isNatIList^#(ok(X)) -> c_47(isNatIList^#(X)) 1042.62/297.07 , top^#(mark(X)) -> c_63(top^#(proper(X))) 1042.62/297.07 , top^#(ok(X)) -> c_64(top^#(active(X))) } 1042.62/297.07 Strict Trs: 1042.62/297.07 { active(zeros()) -> mark(cons(0(), zeros())) 1042.62/297.07 , active(cons(X1, X2)) -> cons(active(X1), X2) 1042.62/297.07 , active(U11(X1, X2)) -> U11(active(X1), X2) 1042.62/297.07 , active(U11(tt(), L)) -> mark(s(length(L))) 1042.62/297.07 , active(s(X)) -> s(active(X)) 1042.62/297.07 , active(length(X)) -> length(active(X)) 1042.62/297.07 , active(length(cons(N, L))) -> 1042.62/297.07 mark(U11(and(isNatList(L), isNat(N)), L)) 1042.62/297.07 , active(length(nil())) -> mark(0()) 1042.62/297.07 , active(U21(X)) -> U21(active(X)) 1042.62/297.07 , active(U21(tt())) -> mark(nil()) 1042.62/297.07 , active(U31(X1, X2, X3, X4)) -> U31(active(X1), X2, X3, X4) 1042.62/297.07 , active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))) 1042.62/297.07 , active(take(X1, X2)) -> take(X1, active(X2)) 1042.62/297.07 , active(take(X1, X2)) -> take(active(X1), X2) 1042.62/297.07 , active(take(0(), IL)) -> mark(U21(isNatIList(IL))) 1042.62/297.07 , active(take(s(M), cons(N, IL))) -> 1042.62/297.07 mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) 1042.62/297.07 , active(and(X1, X2)) -> and(active(X1), X2) 1042.62/297.07 , active(and(tt(), X)) -> mark(X) 1042.62/297.07 , active(isNat(0())) -> mark(tt()) 1042.62/297.07 , active(isNat(s(V1))) -> mark(isNat(V1)) 1042.62/297.07 , active(isNat(length(V1))) -> mark(isNatList(V1)) 1042.62/297.07 , active(isNatList(cons(V1, V2))) -> 1042.62/297.07 mark(and(isNat(V1), isNatList(V2))) 1042.62/297.07 , active(isNatList(nil())) -> mark(tt()) 1042.62/297.07 , active(isNatList(take(V1, V2))) -> 1042.62/297.07 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.07 , active(isNatIList(V)) -> mark(isNatList(V)) 1042.62/297.07 , active(isNatIList(zeros())) -> mark(tt()) 1042.62/297.07 , active(isNatIList(cons(V1, V2))) -> 1042.62/297.07 mark(and(isNat(V1), isNatIList(V2))) 1042.62/297.07 , cons(mark(X1), X2) -> mark(cons(X1, X2)) 1042.62/297.07 , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 1042.62/297.07 , U11(mark(X1), X2) -> mark(U11(X1, X2)) 1042.62/297.07 , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2)) 1042.62/297.07 , s(mark(X)) -> mark(s(X)) 1042.62/297.07 , s(ok(X)) -> ok(s(X)) 1042.62/297.07 , length(mark(X)) -> mark(length(X)) 1042.62/297.07 , length(ok(X)) -> ok(length(X)) 1042.62/297.07 , U21(mark(X)) -> mark(U21(X)) 1042.62/297.07 , U21(ok(X)) -> ok(U21(X)) 1042.62/297.07 , U31(mark(X1), X2, X3, X4) -> mark(U31(X1, X2, X3, X4)) 1042.62/297.07 , U31(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U31(X1, X2, X3, X4)) 1042.62/297.07 , take(X1, mark(X2)) -> mark(take(X1, X2)) 1042.62/297.07 , take(mark(X1), X2) -> mark(take(X1, X2)) 1042.62/297.07 , take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 1042.62/297.07 , and(mark(X1), X2) -> mark(and(X1, X2)) 1042.62/297.07 , and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 1042.62/297.07 , isNat(ok(X)) -> ok(isNat(X)) 1042.62/297.07 , isNatList(ok(X)) -> ok(isNatList(X)) 1042.62/297.07 , isNatIList(ok(X)) -> ok(isNatIList(X)) 1042.62/297.07 , proper(zeros()) -> ok(zeros()) 1042.62/297.07 , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 1042.62/297.07 , proper(0()) -> ok(0()) 1042.62/297.07 , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2)) 1042.62/297.07 , proper(tt()) -> ok(tt()) 1042.62/297.07 , proper(s(X)) -> s(proper(X)) 1042.62/297.07 , proper(length(X)) -> length(proper(X)) 1042.62/297.07 , proper(U21(X)) -> U21(proper(X)) 1042.62/297.07 , proper(nil()) -> ok(nil()) 1042.62/297.07 , proper(U31(X1, X2, X3, X4)) -> 1042.62/297.07 U31(proper(X1), proper(X2), proper(X3), proper(X4)) 1042.62/297.07 , proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 1042.62/297.07 , proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 1042.62/297.07 , proper(isNat(X)) -> isNat(proper(X)) 1042.62/297.07 , proper(isNatList(X)) -> isNatList(proper(X)) 1042.62/297.07 , proper(isNatIList(X)) -> isNatIList(proper(X)) 1042.62/297.07 , top(mark(X)) -> top(proper(X)) 1042.62/297.07 , top(ok(X)) -> top(active(X)) } 1042.62/297.07 Weak DPs: 1042.62/297.07 { active^#(zeros()) -> c_1(cons^#(0(), zeros())) 1042.62/297.07 , proper^#(zeros()) -> c_48() 1042.62/297.07 , proper^#(0()) -> c_50() 1042.62/297.07 , proper^#(tt()) -> c_52() 1042.62/297.07 , proper^#(nil()) -> c_56() } 1042.62/297.07 Obligation: 1042.62/297.07 runtime complexity 1042.62/297.07 Answer: 1042.62/297.07 MAYBE 1042.62/297.07 1042.62/297.07 Empty strict component of the problem is NOT empty. 1042.62/297.07 1042.62/297.07 1042.62/297.07 Arrrr.. 1043.04/297.38 EOF