MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { a____(X1, X2) -> __(X1, X2) , a____(X, nil()) -> mark(X) , a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) , a____(nil(), X) -> mark(X) , mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) , mark(nil()) -> nil() , mark(tt()) -> tt() , mark(isList(X)) -> a__isList(X) , mark(isNeList(X)) -> a__isNeList(X) , mark(isPal(X)) -> a__isPal(X) , mark(a()) -> a() , mark(e()) -> e() , mark(i()) -> i() , mark(o()) -> o() , mark(u()) -> u() , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(isQid(X)) -> a__isQid(X) , mark(isNePal(X)) -> a__isNePal(X) , a__and(X1, X2) -> and(X1, X2) , a__and(tt(), X) -> mark(X) , a__isList(V) -> a__isNeList(V) , a__isList(X) -> isList(X) , a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) , a__isList(nil()) -> tt() , a__isNeList(V) -> a__isQid(V) , a__isNeList(X) -> isNeList(X) , a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) , a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) , a__isQid(X) -> isQid(X) , a__isQid(a()) -> tt() , a__isQid(e()) -> tt() , a__isQid(i()) -> tt() , a__isQid(o()) -> tt() , a__isQid(u()) -> tt() , a__isNePal(V) -> a__isQid(V) , a__isNePal(X) -> isNePal(X) , a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) , a__isPal(V) -> a__isNePal(V) , a__isPal(X) -> isPal(X) , a__isPal(nil()) -> tt() } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { a____^#(X1, X2) -> c_1() , a____^#(X, nil()) -> c_2(mark^#(X)) , a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , a____^#(nil(), X) -> c_4(mark^#(X)) , mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , mark^#(nil()) -> c_6() , mark^#(tt()) -> c_7() , mark^#(isList(X)) -> c_8(a__isList^#(X)) , mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , mark^#(a()) -> c_11() , mark^#(e()) -> c_12() , mark^#(i()) -> c_13() , mark^#(o()) -> c_14() , mark^#(u()) -> c_15() , mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , a__isList^#(V) -> c_21(a__isNeList^#(V)) , a__isList^#(X) -> c_22() , a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , a__isList^#(nil()) -> c_24() , a__isNeList^#(V) -> c_25(a__isQid^#(V)) , a__isNeList^#(X) -> c_26() , a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , a__isPal^#(V) -> c_38(a__isNePal^#(V)) , a__isPal^#(X) -> c_39() , a__isPal^#(nil()) -> c_40() , a__and^#(X1, X2) -> c_19() , a__and^#(tt(), X) -> c_20(mark^#(X)) , a__isQid^#(X) -> c_29() , a__isQid^#(a()) -> c_30() , a__isQid^#(e()) -> c_31() , a__isQid^#(i()) -> c_32() , a__isQid^#(o()) -> c_33() , a__isQid^#(u()) -> c_34() , a__isNePal^#(V) -> c_35(a__isQid^#(V)) , a__isNePal^#(X) -> c_36() , a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { a____^#(X1, X2) -> c_1() , a____^#(X, nil()) -> c_2(mark^#(X)) , a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , a____^#(nil(), X) -> c_4(mark^#(X)) , mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , mark^#(nil()) -> c_6() , mark^#(tt()) -> c_7() , mark^#(isList(X)) -> c_8(a__isList^#(X)) , mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , mark^#(a()) -> c_11() , mark^#(e()) -> c_12() , mark^#(i()) -> c_13() , mark^#(o()) -> c_14() , mark^#(u()) -> c_15() , mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , a__isList^#(V) -> c_21(a__isNeList^#(V)) , a__isList^#(X) -> c_22() , a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , a__isList^#(nil()) -> c_24() , a__isNeList^#(V) -> c_25(a__isQid^#(V)) , a__isNeList^#(X) -> c_26() , a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , a__isPal^#(V) -> c_38(a__isNePal^#(V)) , a__isPal^#(X) -> c_39() , a__isPal^#(nil()) -> c_40() , a__and^#(X1, X2) -> c_19() , a__and^#(tt(), X) -> c_20(mark^#(X)) , a__isQid^#(X) -> c_29() , a__isQid^#(a()) -> c_30() , a__isQid^#(e()) -> c_31() , a__isQid^#(i()) -> c_32() , a__isQid^#(o()) -> c_33() , a__isQid^#(u()) -> c_34() , a__isNePal^#(V) -> c_35(a__isQid^#(V)) , a__isNePal^#(X) -> c_36() , a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } Weak Trs: { a____(X1, X2) -> __(X1, X2) , a____(X, nil()) -> mark(X) , a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) , a____(nil(), X) -> mark(X) , mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) , mark(nil()) -> nil() , mark(tt()) -> tt() , mark(isList(X)) -> a__isList(X) , mark(isNeList(X)) -> a__isNeList(X) , mark(isPal(X)) -> a__isPal(X) , mark(a()) -> a() , mark(e()) -> e() , mark(i()) -> i() , mark(o()) -> o() , mark(u()) -> u() , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(isQid(X)) -> a__isQid(X) , mark(isNePal(X)) -> a__isNePal(X) , a__and(X1, X2) -> and(X1, X2) , a__and(tt(), X) -> mark(X) , a__isList(V) -> a__isNeList(V) , a__isList(X) -> isList(X) , a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) , a__isList(nil()) -> tt() , a__isNeList(V) -> a__isQid(V) , a__isNeList(X) -> isNeList(X) , a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) , a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) , a__isQid(X) -> isQid(X) , a__isQid(a()) -> tt() , a__isQid(e()) -> tt() , a__isQid(i()) -> tt() , a__isQid(o()) -> tt() , a__isQid(u()) -> tt() , a__isNePal(V) -> a__isQid(V) , a__isNePal(X) -> isNePal(X) , a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) , a__isPal(V) -> a__isNePal(V) , a__isPal(X) -> isPal(X) , a__isPal(nil()) -> tt() } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,6,7,11,12,13,14,15,20,22,24,28,29,30,32,33,34,35,36,37,39} by applications of Pre({1,6,7,11,12,13,14,15,20,22,24,28,29,30,32,33,34,35,36,37,39}) = {2,3,4,5,8,9,10,16,17,18,19,21,23,25,26,27,31,38,40}. Here rules are labeled as follows: DPs: { 1: a____^#(X1, X2) -> c_1() , 2: a____^#(X, nil()) -> c_2(mark^#(X)) , 3: a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , 4: a____^#(nil(), X) -> c_4(mark^#(X)) , 5: mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , 6: mark^#(nil()) -> c_6() , 7: mark^#(tt()) -> c_7() , 8: mark^#(isList(X)) -> c_8(a__isList^#(X)) , 9: mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , 10: mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , 11: mark^#(a()) -> c_11() , 12: mark^#(e()) -> c_12() , 13: mark^#(i()) -> c_13() , 14: mark^#(o()) -> c_14() , 15: mark^#(u()) -> c_15() , 16: mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , 17: mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , 18: mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , 19: a__isList^#(V) -> c_21(a__isNeList^#(V)) , 20: a__isList^#(X) -> c_22() , 21: a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , 22: a__isList^#(nil()) -> c_24() , 23: a__isNeList^#(V) -> c_25(a__isQid^#(V)) , 24: a__isNeList^#(X) -> c_26() , 25: a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , 26: a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , 27: a__isPal^#(V) -> c_38(a__isNePal^#(V)) , 28: a__isPal^#(X) -> c_39() , 29: a__isPal^#(nil()) -> c_40() , 30: a__and^#(X1, X2) -> c_19() , 31: a__and^#(tt(), X) -> c_20(mark^#(X)) , 32: a__isQid^#(X) -> c_29() , 33: a__isQid^#(a()) -> c_30() , 34: a__isQid^#(e()) -> c_31() , 35: a__isQid^#(i()) -> c_32() , 36: a__isQid^#(o()) -> c_33() , 37: a__isQid^#(u()) -> c_34() , 38: a__isNePal^#(V) -> c_35(a__isQid^#(V)) , 39: a__isNePal^#(X) -> c_36() , 40: a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { a____^#(X, nil()) -> c_2(mark^#(X)) , a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , a____^#(nil(), X) -> c_4(mark^#(X)) , mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , mark^#(isList(X)) -> c_8(a__isList^#(X)) , mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , a__isList^#(V) -> c_21(a__isNeList^#(V)) , a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , a__isNeList^#(V) -> c_25(a__isQid^#(V)) , a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , a__isPal^#(V) -> c_38(a__isNePal^#(V)) , a__and^#(tt(), X) -> c_20(mark^#(X)) , a__isNePal^#(V) -> c_35(a__isQid^#(V)) , a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } Weak DPs: { a____^#(X1, X2) -> c_1() , mark^#(nil()) -> c_6() , mark^#(tt()) -> c_7() , mark^#(a()) -> c_11() , mark^#(e()) -> c_12() , mark^#(i()) -> c_13() , mark^#(o()) -> c_14() , mark^#(u()) -> c_15() , a__isList^#(X) -> c_22() , a__isList^#(nil()) -> c_24() , a__isNeList^#(X) -> c_26() , a__isPal^#(X) -> c_39() , a__isPal^#(nil()) -> c_40() , a__and^#(X1, X2) -> c_19() , a__isQid^#(X) -> c_29() , a__isQid^#(a()) -> c_30() , a__isQid^#(e()) -> c_31() , a__isQid^#(i()) -> c_32() , a__isQid^#(o()) -> c_33() , a__isQid^#(u()) -> c_34() , a__isNePal^#(X) -> c_36() } Weak Trs: { a____(X1, X2) -> __(X1, X2) , a____(X, nil()) -> mark(X) , a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) , a____(nil(), X) -> mark(X) , mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) , mark(nil()) -> nil() , mark(tt()) -> tt() , mark(isList(X)) -> a__isList(X) , mark(isNeList(X)) -> a__isNeList(X) , mark(isPal(X)) -> a__isPal(X) , mark(a()) -> a() , mark(e()) -> e() , mark(i()) -> i() , mark(o()) -> o() , mark(u()) -> u() , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(isQid(X)) -> a__isQid(X) , mark(isNePal(X)) -> a__isNePal(X) , a__and(X1, X2) -> and(X1, X2) , a__and(tt(), X) -> mark(X) , a__isList(V) -> a__isNeList(V) , a__isList(X) -> isList(X) , a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) , a__isList(nil()) -> tt() , a__isNeList(V) -> a__isQid(V) , a__isNeList(X) -> isNeList(X) , a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) , a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) , a__isQid(X) -> isQid(X) , a__isQid(a()) -> tt() , a__isQid(e()) -> tt() , a__isQid(i()) -> tt() , a__isQid(o()) -> tt() , a__isQid(u()) -> tt() , a__isNePal(V) -> a__isQid(V) , a__isNePal(X) -> isNePal(X) , a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) , a__isPal(V) -> a__isNePal(V) , a__isPal(X) -> isPal(X) , a__isPal(nil()) -> tt() } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {9,13,18} by applications of Pre({9,13,18}) = {1,2,3,4,6,8,10,11,15,16,17}. Here rules are labeled as follows: DPs: { 1: a____^#(X, nil()) -> c_2(mark^#(X)) , 2: a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , 3: a____^#(nil(), X) -> c_4(mark^#(X)) , 4: mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , 5: mark^#(isList(X)) -> c_8(a__isList^#(X)) , 6: mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , 7: mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , 8: mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , 9: mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , 10: mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , 11: a__isList^#(V) -> c_21(a__isNeList^#(V)) , 12: a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , 13: a__isNeList^#(V) -> c_25(a__isQid^#(V)) , 14: a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , 15: a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , 16: a__isPal^#(V) -> c_38(a__isNePal^#(V)) , 17: a__and^#(tt(), X) -> c_20(mark^#(X)) , 18: a__isNePal^#(V) -> c_35(a__isQid^#(V)) , 19: a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) , 20: a____^#(X1, X2) -> c_1() , 21: mark^#(nil()) -> c_6() , 22: mark^#(tt()) -> c_7() , 23: mark^#(a()) -> c_11() , 24: mark^#(e()) -> c_12() , 25: mark^#(i()) -> c_13() , 26: mark^#(o()) -> c_14() , 27: mark^#(u()) -> c_15() , 28: a__isList^#(X) -> c_22() , 29: a__isList^#(nil()) -> c_24() , 30: a__isNeList^#(X) -> c_26() , 31: a__isPal^#(X) -> c_39() , 32: a__isPal^#(nil()) -> c_40() , 33: a__and^#(X1, X2) -> c_19() , 34: a__isQid^#(X) -> c_29() , 35: a__isQid^#(a()) -> c_30() , 36: a__isQid^#(e()) -> c_31() , 37: a__isQid^#(i()) -> c_32() , 38: a__isQid^#(o()) -> c_33() , 39: a__isQid^#(u()) -> c_34() , 40: a__isNePal^#(X) -> c_36() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { a____^#(X, nil()) -> c_2(mark^#(X)) , a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , a____^#(nil(), X) -> c_4(mark^#(X)) , mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , mark^#(isList(X)) -> c_8(a__isList^#(X)) , mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , a__isList^#(V) -> c_21(a__isNeList^#(V)) , a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , a__isPal^#(V) -> c_38(a__isNePal^#(V)) , a__and^#(tt(), X) -> c_20(mark^#(X)) , a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } Weak DPs: { a____^#(X1, X2) -> c_1() , mark^#(nil()) -> c_6() , mark^#(tt()) -> c_7() , mark^#(a()) -> c_11() , mark^#(e()) -> c_12() , mark^#(i()) -> c_13() , mark^#(o()) -> c_14() , mark^#(u()) -> c_15() , mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , a__isList^#(X) -> c_22() , a__isList^#(nil()) -> c_24() , a__isNeList^#(V) -> c_25(a__isQid^#(V)) , a__isNeList^#(X) -> c_26() , a__isPal^#(X) -> c_39() , a__isPal^#(nil()) -> c_40() , a__and^#(X1, X2) -> c_19() , a__isQid^#(X) -> c_29() , a__isQid^#(a()) -> c_30() , a__isQid^#(e()) -> c_31() , a__isQid^#(i()) -> c_32() , a__isQid^#(o()) -> c_33() , a__isQid^#(u()) -> c_34() , a__isNePal^#(V) -> c_35(a__isQid^#(V)) , a__isNePal^#(X) -> c_36() } Weak Trs: { a____(X1, X2) -> __(X1, X2) , a____(X, nil()) -> mark(X) , a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) , a____(nil(), X) -> mark(X) , mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) , mark(nil()) -> nil() , mark(tt()) -> tt() , mark(isList(X)) -> a__isList(X) , mark(isNeList(X)) -> a__isNeList(X) , mark(isPal(X)) -> a__isPal(X) , mark(a()) -> a() , mark(e()) -> e() , mark(i()) -> i() , mark(o()) -> o() , mark(u()) -> u() , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(isQid(X)) -> a__isQid(X) , mark(isNePal(X)) -> a__isNePal(X) , a__and(X1, X2) -> and(X1, X2) , a__and(tt(), X) -> mark(X) , a__isList(V) -> a__isNeList(V) , a__isList(X) -> isList(X) , a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) , a__isList(nil()) -> tt() , a__isNeList(V) -> a__isQid(V) , a__isNeList(X) -> isNeList(X) , a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) , a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) , a__isQid(X) -> isQid(X) , a__isQid(a()) -> tt() , a__isQid(e()) -> tt() , a__isQid(i()) -> tt() , a__isQid(o()) -> tt() , a__isQid(u()) -> tt() , a__isNePal(V) -> a__isQid(V) , a__isNePal(X) -> isNePal(X) , a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) , a__isPal(V) -> a__isNePal(V) , a__isPal(X) -> isPal(X) , a__isPal(nil()) -> tt() } Obligation: innermost runtime complexity Answer: MAYBE The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { a____^#(X1, X2) -> c_1() , mark^#(nil()) -> c_6() , mark^#(tt()) -> c_7() , mark^#(a()) -> c_11() , mark^#(e()) -> c_12() , mark^#(i()) -> c_13() , mark^#(o()) -> c_14() , mark^#(u()) -> c_15() , mark^#(isQid(X)) -> c_17(a__isQid^#(X)) , a__isList^#(X) -> c_22() , a__isList^#(nil()) -> c_24() , a__isNeList^#(V) -> c_25(a__isQid^#(V)) , a__isNeList^#(X) -> c_26() , a__isPal^#(X) -> c_39() , a__isPal^#(nil()) -> c_40() , a__and^#(X1, X2) -> c_19() , a__isQid^#(X) -> c_29() , a__isQid^#(a()) -> c_30() , a__isQid^#(e()) -> c_31() , a__isQid^#(i()) -> c_32() , a__isQid^#(o()) -> c_33() , a__isQid^#(u()) -> c_34() , a__isNePal^#(V) -> c_35(a__isQid^#(V)) , a__isNePal^#(X) -> c_36() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { a____^#(X, nil()) -> c_2(mark^#(X)) , a____^#(__(X, Y), Z) -> c_3(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , a____^#(nil(), X) -> c_4(mark^#(X)) , mark^#(__(X1, X2)) -> c_5(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , mark^#(isList(X)) -> c_8(a__isList^#(X)) , mark^#(isNeList(X)) -> c_9(a__isNeList^#(X)) , mark^#(isPal(X)) -> c_10(a__isPal^#(X)) , mark^#(and(X1, X2)) -> c_16(a__and^#(mark(X1), X2), mark^#(X1)) , mark^#(isNePal(X)) -> c_18(a__isNePal^#(X)) , a__isList^#(V) -> c_21(a__isNeList^#(V)) , a__isList^#(__(V1, V2)) -> c_23(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_27(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_28(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , a__isPal^#(V) -> c_38(a__isNePal^#(V)) , a__and^#(tt(), X) -> c_20(mark^#(X)) , a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } Weak Trs: { a____(X1, X2) -> __(X1, X2) , a____(X, nil()) -> mark(X) , a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) , a____(nil(), X) -> mark(X) , mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) , mark(nil()) -> nil() , mark(tt()) -> tt() , mark(isList(X)) -> a__isList(X) , mark(isNeList(X)) -> a__isNeList(X) , mark(isPal(X)) -> a__isPal(X) , mark(a()) -> a() , mark(e()) -> e() , mark(i()) -> i() , mark(o()) -> o() , mark(u()) -> u() , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(isQid(X)) -> a__isQid(X) , mark(isNePal(X)) -> a__isNePal(X) , a__and(X1, X2) -> and(X1, X2) , a__and(tt(), X) -> mark(X) , a__isList(V) -> a__isNeList(V) , a__isList(X) -> isList(X) , a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) , a__isList(nil()) -> tt() , a__isNeList(V) -> a__isQid(V) , a__isNeList(X) -> isNeList(X) , a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) , a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) , a__isQid(X) -> isQid(X) , a__isQid(a()) -> tt() , a__isQid(e()) -> tt() , a__isQid(i()) -> tt() , a__isQid(o()) -> tt() , a__isQid(u()) -> tt() , a__isNePal(V) -> a__isQid(V) , a__isNePal(X) -> isNePal(X) , a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) , a__isPal(V) -> a__isNePal(V) , a__isPal(X) -> isPal(X) , a__isPal(nil()) -> tt() } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { a__isNePal^#(__(I, __(P, I))) -> c_37(a__and^#(a__isQid(I), isPal(P)), a__isQid^#(I)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { a____^#(X, nil()) -> c_1(mark^#(X)) , a____^#(__(X, Y), Z) -> c_2(a____^#(mark(X), a____(mark(Y), mark(Z))), mark^#(X), a____^#(mark(Y), mark(Z)), mark^#(Y), mark^#(Z)) , a____^#(nil(), X) -> c_3(mark^#(X)) , mark^#(__(X1, X2)) -> c_4(a____^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2)) , mark^#(isList(X)) -> c_5(a__isList^#(X)) , mark^#(isNeList(X)) -> c_6(a__isNeList^#(X)) , mark^#(isPal(X)) -> c_7(a__isPal^#(X)) , mark^#(and(X1, X2)) -> c_8(a__and^#(mark(X1), X2), mark^#(X1)) , mark^#(isNePal(X)) -> c_9(a__isNePal^#(X)) , a__isList^#(V) -> c_10(a__isNeList^#(V)) , a__isList^#(__(V1, V2)) -> c_11(a__and^#(a__isList(V1), isList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_12(a__and^#(a__isList(V1), isNeList(V2)), a__isList^#(V1)) , a__isNeList^#(__(V1, V2)) -> c_13(a__and^#(a__isNeList(V1), isList(V2)), a__isNeList^#(V1)) , a__isPal^#(V) -> c_14(a__isNePal^#(V)) , a__and^#(tt(), X) -> c_15(mark^#(X)) , a__isNePal^#(__(I, __(P, I))) -> c_16(a__and^#(a__isQid(I), isPal(P))) } Weak Trs: { a____(X1, X2) -> __(X1, X2) , a____(X, nil()) -> mark(X) , a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) , a____(nil(), X) -> mark(X) , mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) , mark(nil()) -> nil() , mark(tt()) -> tt() , mark(isList(X)) -> a__isList(X) , mark(isNeList(X)) -> a__isNeList(X) , mark(isPal(X)) -> a__isPal(X) , mark(a()) -> a() , mark(e()) -> e() , mark(i()) -> i() , mark(o()) -> o() , mark(u()) -> u() , mark(and(X1, X2)) -> a__and(mark(X1), X2) , mark(isQid(X)) -> a__isQid(X) , mark(isNePal(X)) -> a__isNePal(X) , a__and(X1, X2) -> and(X1, X2) , a__and(tt(), X) -> mark(X) , a__isList(V) -> a__isNeList(V) , a__isList(X) -> isList(X) , a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) , a__isList(nil()) -> tt() , a__isNeList(V) -> a__isQid(V) , a__isNeList(X) -> isNeList(X) , a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) , a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) , a__isQid(X) -> isQid(X) , a__isQid(a()) -> tt() , a__isQid(e()) -> tt() , a__isQid(i()) -> tt() , a__isQid(o()) -> tt() , a__isQid(u()) -> tt() , a__isNePal(V) -> a__isQid(V) , a__isNePal(X) -> isNePal(X) , a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) , a__isPal(V) -> a__isNePal(V) , a__isPal(X) -> isPal(X) , a__isPal(nil()) -> tt() } Obligation: innermost runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrices' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrix interpretation of dimension 4' failed due to the following reason: Following exception was raised: stack overflow 2) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 3) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 4) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 5) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 6) 'matrix interpretation of dimension 1' failed due to the following reason: The input cannot be shown compatible 2) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. Arrrr..