YES We show the termination of the TRS R: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) active(__(X,nil())) -> mark(X) active(__(nil(),X)) -> mark(X) active(and(tt(),X)) -> mark(X) active(isList(V)) -> mark(isNeList(V)) active(isList(nil())) -> mark(tt()) active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) active(isNeList(V)) -> mark(isQid(V)) active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) active(isNePal(V)) -> mark(isQid(V)) active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) active(isPal(V)) -> mark(isNePal(V)) active(isPal(nil())) -> mark(tt()) active(isQid(a())) -> mark(tt()) active(isQid(e())) -> mark(tt()) active(isQid(i())) -> mark(tt()) active(isQid(o())) -> mark(tt()) active(isQid(u())) -> mark(tt()) mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) mark(nil()) -> active(nil()) mark(and(X1,X2)) -> active(and(mark(X1),X2)) mark(tt()) -> active(tt()) mark(isList(X)) -> active(isList(X)) mark(isNeList(X)) -> active(isNeList(X)) mark(isQid(X)) -> active(isQid(X)) mark(isNePal(X)) -> active(isNePal(X)) mark(isPal(X)) -> active(isPal(X)) mark(a()) -> active(a()) mark(e()) -> active(e()) mark(i()) -> active(i()) mark(o()) -> active(o()) mark(u()) -> active(u()) __(mark(X1),X2) -> __(X1,X2) __(X1,mark(X2)) -> __(X1,X2) __(active(X1),X2) -> __(X1,X2) __(X1,active(X2)) -> __(X1,X2) and(mark(X1),X2) -> and(X1,X2) and(X1,mark(X2)) -> and(X1,X2) and(active(X1),X2) -> and(X1,X2) and(X1,active(X2)) -> and(X1,X2) isList(mark(X)) -> isList(X) isList(active(X)) -> isList(X) isNeList(mark(X)) -> isNeList(X) isNeList(active(X)) -> isNeList(X) isQid(mark(X)) -> isQid(X) isQid(active(X)) -> isQid(X) isNePal(mark(X)) -> isNePal(X) isNePal(active(X)) -> isNePal(X) isPal(mark(X)) -> isPal(X) isPal(active(X)) -> isPal(X) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: active#(__(__(X,Y),Z)) -> __#(X,__(Y,Z)) p3: active#(__(__(X,Y),Z)) -> __#(Y,Z) p4: active#(__(X,nil())) -> mark#(X) p5: active#(__(nil(),X)) -> mark#(X) p6: active#(and(tt(),X)) -> mark#(X) p7: active#(isList(V)) -> mark#(isNeList(V)) p8: active#(isList(V)) -> isNeList#(V) p9: active#(isList(nil())) -> mark#(tt()) p10: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p11: active#(isList(__(V1,V2))) -> and#(isList(V1),isList(V2)) p12: active#(isList(__(V1,V2))) -> isList#(V1) p13: active#(isList(__(V1,V2))) -> isList#(V2) p14: active#(isNeList(V)) -> mark#(isQid(V)) p15: active#(isNeList(V)) -> isQid#(V) p16: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p17: active#(isNeList(__(V1,V2))) -> and#(isList(V1),isNeList(V2)) p18: active#(isNeList(__(V1,V2))) -> isList#(V1) p19: active#(isNeList(__(V1,V2))) -> isNeList#(V2) p20: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p21: active#(isNeList(__(V1,V2))) -> and#(isNeList(V1),isList(V2)) p22: active#(isNeList(__(V1,V2))) -> isNeList#(V1) p23: active#(isNeList(__(V1,V2))) -> isList#(V2) p24: active#(isNePal(V)) -> mark#(isQid(V)) p25: active#(isNePal(V)) -> isQid#(V) p26: active#(isNePal(__(I,__(P,I)))) -> mark#(and(isQid(I),isPal(P))) p27: active#(isNePal(__(I,__(P,I)))) -> and#(isQid(I),isPal(P)) p28: active#(isNePal(__(I,__(P,I)))) -> isQid#(I) p29: active#(isNePal(__(I,__(P,I)))) -> isPal#(P) p30: active#(isPal(V)) -> mark#(isNePal(V)) p31: active#(isPal(V)) -> isNePal#(V) p32: active#(isPal(nil())) -> mark#(tt()) p33: active#(isQid(a())) -> mark#(tt()) p34: active#(isQid(e())) -> mark#(tt()) p35: active#(isQid(i())) -> mark#(tt()) p36: active#(isQid(o())) -> mark#(tt()) p37: active#(isQid(u())) -> mark#(tt()) p38: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p39: mark#(__(X1,X2)) -> __#(mark(X1),mark(X2)) p40: mark#(__(X1,X2)) -> mark#(X1) p41: mark#(__(X1,X2)) -> mark#(X2) p42: mark#(nil()) -> active#(nil()) p43: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p44: mark#(and(X1,X2)) -> and#(mark(X1),X2) p45: mark#(and(X1,X2)) -> mark#(X1) p46: mark#(tt()) -> active#(tt()) p47: mark#(isList(X)) -> active#(isList(X)) p48: mark#(isNeList(X)) -> active#(isNeList(X)) p49: mark#(isQid(X)) -> active#(isQid(X)) p50: mark#(isNePal(X)) -> active#(isNePal(X)) p51: mark#(isPal(X)) -> active#(isPal(X)) p52: mark#(a()) -> active#(a()) p53: mark#(e()) -> active#(e()) p54: mark#(i()) -> active#(i()) p55: mark#(o()) -> active#(o()) p56: mark#(u()) -> active#(u()) p57: __#(mark(X1),X2) -> __#(X1,X2) p58: __#(X1,mark(X2)) -> __#(X1,X2) p59: __#(active(X1),X2) -> __#(X1,X2) p60: __#(X1,active(X2)) -> __#(X1,X2) p61: and#(mark(X1),X2) -> and#(X1,X2) p62: and#(X1,mark(X2)) -> and#(X1,X2) p63: and#(active(X1),X2) -> and#(X1,X2) p64: and#(X1,active(X2)) -> and#(X1,X2) p65: isList#(mark(X)) -> isList#(X) p66: isList#(active(X)) -> isList#(X) p67: isNeList#(mark(X)) -> isNeList#(X) p68: isNeList#(active(X)) -> isNeList#(X) p69: isQid#(mark(X)) -> isQid#(X) p70: isQid#(active(X)) -> isQid#(X) p71: isNePal#(mark(X)) -> isNePal#(X) p72: isNePal#(active(X)) -> isNePal#(X) p73: isPal#(mark(X)) -> isPal#(X) p74: isPal#(active(X)) -> isPal#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p4, p5, p6, p7, p10, p14, p16, p20, p24, p26, p30, p38, p40, p41, p43, p45, p47, p48, p49, p50, p51} {p57, p58, p59, p60} {p67, p68} {p61, p62, p63, p64} {p65, p66} {p69, p70} {p73, p74} {p71, p72} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isPal(X)) -> active#(isPal(X)) p3: active#(isPal(V)) -> mark#(isNePal(V)) p4: mark#(isNePal(X)) -> active#(isNePal(X)) p5: active#(isNePal(__(I,__(P,I)))) -> mark#(and(isQid(I),isPal(P))) p6: mark#(isQid(X)) -> active#(isQid(X)) p7: active#(isNePal(V)) -> mark#(isQid(V)) p8: mark#(isNeList(X)) -> active#(isNeList(X)) p9: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p10: mark#(isList(X)) -> active#(isList(X)) p11: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p12: mark#(and(X1,X2)) -> mark#(X1) p13: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p14: active#(isNeList(V)) -> mark#(isQid(V)) p15: mark#(__(X1,X2)) -> mark#(X2) p16: mark#(__(X1,X2)) -> mark#(X1) p17: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p18: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p19: active#(isList(V)) -> mark#(isNeList(V)) p20: active#(and(tt(),X)) -> mark#(X) p21: active#(__(nil(),X)) -> mark#(X) p22: active#(__(X,nil())) -> mark#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 14 ___A(x1,x2) = max{x1 + 9, x2} mark#_A(x1) = x1 + 14 isPal_A(x1) = x1 + 21 isNePal_A(x1) = max{18, x1 + 17} and_A(x1,x2) = max{x1 + 2, x2} isQid_A(x1) = max{0, x1 - 8} isNeList_A(x1) = max{0, x1 - 4} isList_A(x1) = max{0, x1 - 4} mark_A(x1) = x1 tt_A = 22 nil_A = 27 active_A(x1) = x1 a_A = 30 e_A = 31 i_A = 30 o_A = 31 u_A = 30 precedence: __ = and = isNeList = isList > tt > nil = i > active# = mark# = isPal = isNePal = isQid = mark = active = a = e = o = u partial status: pi(active#) = [1] pi(__) = [] pi(mark#) = [1] pi(isPal) = [] pi(isNePal) = [] pi(and) = [] pi(isQid) = [] pi(isNeList) = [] pi(isList) = [] pi(mark) = [] pi(tt) = [] pi(nil) = [] pi(active) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = 518 ___A(x1,x2) = 300 mark#_A(x1) = 518 isPal_A(x1) = 318 isNePal_A(x1) = 343 and_A(x1,x2) = 299 isQid_A(x1) = 343 isNeList_A(x1) = 312 isList_A(x1) = 318 mark_A(x1) = 300 tt_A = 368 nil_A = 296 active_A(x1) = 300 a_A = 296 e_A = 296 i_A = 296 o_A = 296 u_A = 299 precedence: active# = __ = mark# = isPal = isNePal = and = isQid = isNeList = isList = mark = tt = nil = active = a = e = i = o = u partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(isPal) = [] pi(isNePal) = [] pi(and) = [] pi(isQid) = [] pi(isNeList) = [] pi(isList) = [] pi(mark) = [] pi(tt) = [] pi(nil) = [] pi(active) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p3, p5, p7, p22 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isPal(X)) -> active#(isPal(X)) p3: mark#(isNePal(X)) -> active#(isNePal(X)) p4: mark#(isQid(X)) -> active#(isQid(X)) p5: mark#(isNeList(X)) -> active#(isNeList(X)) p6: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p7: mark#(isList(X)) -> active#(isList(X)) p8: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p9: mark#(and(X1,X2)) -> mark#(X1) p10: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p11: active#(isNeList(V)) -> mark#(isQid(V)) p12: mark#(__(X1,X2)) -> mark#(X2) p13: mark#(__(X1,X2)) -> mark#(X1) p14: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p15: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p16: active#(isList(V)) -> mark#(isNeList(V)) p17: active#(and(tt(),X)) -> mark#(X) p18: active#(__(nil(),X)) -> mark#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X1) p5: mark#(__(X1,X2)) -> mark#(X2) p6: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p7: active#(and(tt(),X)) -> mark#(X) p8: mark#(and(X1,X2)) -> mark#(X1) p9: mark#(isList(X)) -> active#(isList(X)) p10: active#(isList(V)) -> mark#(isNeList(V)) p11: mark#(isNeList(X)) -> active#(isNeList(X)) p12: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p13: mark#(isQid(X)) -> active#(isQid(X)) p14: active#(isNeList(V)) -> mark#(isQid(V)) p15: mark#(isNePal(X)) -> active#(isNePal(X)) p16: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p17: mark#(isPal(X)) -> active#(isPal(X)) p18: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = max{32, x1 + 9} ___A(x1,x2) = max{40, x1 + 17, x2} mark#_A(x1) = max{42, x1 + 9} mark_A(x1) = max{23, x1} nil_A = 24 and_A(x1,x2) = max{73, x1 + 17, x2} tt_A = 3 isList_A(x1) = x1 + 33 isNeList_A(x1) = x1 + 33 isQid_A(x1) = max{2, x1 - 7} isNePal_A(x1) = x1 + 33 isPal_A(x1) = x1 + 33 active_A(x1) = max{2, x1} a_A = 30 e_A = 30 i_A = 31 o_A = 30 u_A = 30 precedence: __ = mark = and = isList = isNeList = active = e = i > isPal > active# = mark# = nil = o = u > tt = isQid = isNePal = a partial status: pi(active#) = [1] pi(__) = [] pi(mark#) = [1] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(isQid) = [] pi(isNePal) = [] pi(isPal) = [] pi(active) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = 189 ___A(x1,x2) = 175 mark#_A(x1) = 189 mark_A(x1) = 191 nil_A = 175 and_A(x1,x2) = 190 tt_A = 324 isList_A(x1) = 137 isNeList_A(x1) = 234 isQid_A(x1) = 287 isNePal_A(x1) = 202 isPal_A(x1) = 150 active_A(x1) = 191 a_A = 175 e_A = 175 i_A = 175 o_A = 175 u_A = 175 precedence: active# = __ = mark# = mark = and = active = a = e = i = o > nil = tt = isList = isNeList = isQid = isNePal = isPal = u partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(isQid) = [] pi(isNePal) = [] pi(isPal) = [] pi(active) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p4, p14 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X2) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(and(tt(),X)) -> mark#(X) p7: mark#(and(X1,X2)) -> mark#(X1) p8: mark#(isList(X)) -> active#(isList(X)) p9: active#(isList(V)) -> mark#(isNeList(V)) p10: mark#(isNeList(X)) -> active#(isNeList(X)) p11: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p12: mark#(isQid(X)) -> active#(isQid(X)) p13: mark#(isNePal(X)) -> active#(isNePal(X)) p14: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p15: mark#(isPal(X)) -> active#(isPal(X)) p16: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isPal(X)) -> active#(isPal(X)) p3: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p4: mark#(isNePal(X)) -> active#(isNePal(X)) p5: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p6: mark#(isQid(X)) -> active#(isQid(X)) p7: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p8: mark#(isNeList(X)) -> active#(isNeList(X)) p9: active#(isList(V)) -> mark#(isNeList(V)) p10: mark#(isList(X)) -> active#(isList(X)) p11: active#(and(tt(),X)) -> mark#(X) p12: mark#(and(X1,X2)) -> mark#(X1) p13: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p14: active#(__(nil(),X)) -> mark#(X) p15: mark#(__(X1,X2)) -> mark#(X2) p16: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = max{38, x1 + 9} ___A(x1,x2) = max{x1 + 37, x2} mark#_A(x1) = max{41, x1 + 9} isPal_A(x1) = x1 + 52 isNeList_A(x1) = x1 + 14 and_A(x1,x2) = max{51, x1 + 19, x2} isList_A(x1) = max{32, x1 + 14} isNePal_A(x1) = x1 + 52 isQid_A(x1) = 7 tt_A = 7 mark_A(x1) = x1 nil_A = 8 active_A(x1) = max{5, x1} a_A = 8 e_A = 6 i_A = 28 o_A = 8 u_A = 21 precedence: __ = isNeList = and = isList = isQid = i > o > isNePal > a > active# = mark# = isPal = tt = mark = nil = active = e = u partial status: pi(active#) = [1] pi(__) = [] pi(mark#) = [1] pi(isPal) = [] pi(isNeList) = [] pi(and) = [] pi(isList) = [] pi(isNePal) = [] pi(isQid) = [] pi(tt) = [] pi(mark) = [] pi(nil) = [] pi(active) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = 246 ___A(x1,x2) = 259 mark#_A(x1) = 246 isPal_A(x1) = 259 isNeList_A(x1) = 308 and_A(x1,x2) = 250 isList_A(x1) = 328 isNePal_A(x1) = 400 isQid_A(x1) = 399 tt_A = 490 mark_A(x1) = 258 nil_A = 243 active_A(x1) = 258 a_A = 240 e_A = 240 i_A = 240 o_A = 240 u_A = 240 precedence: i = o = u > active# = __ = mark# = isPal = isNeList = and = isList > isNePal = isQid = tt = mark = nil = active = a = e partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(isPal) = [] pi(isNeList) = [] pi(and) = [] pi(isList) = [] pi(isNePal) = [] pi(isQid) = [] pi(tt) = [] pi(mark) = [] pi(nil) = [] pi(active) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isPal(X)) -> active#(isPal(X)) p3: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p4: mark#(isNePal(X)) -> active#(isNePal(X)) p5: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p6: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p7: mark#(isNeList(X)) -> active#(isNeList(X)) p8: active#(isList(V)) -> mark#(isNeList(V)) p9: mark#(isList(X)) -> active#(isList(X)) p10: active#(and(tt(),X)) -> mark#(X) p11: mark#(and(X1,X2)) -> mark#(X1) p12: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p13: active#(__(nil(),X)) -> mark#(X) p14: mark#(__(X1,X2)) -> mark#(X2) p15: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X2) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(and(tt(),X)) -> mark#(X) p7: mark#(and(X1,X2)) -> mark#(X1) p8: mark#(isList(X)) -> active#(isList(X)) p9: active#(isList(V)) -> mark#(isNeList(V)) p10: mark#(isNeList(X)) -> active#(isNeList(X)) p11: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p12: mark#(isNePal(X)) -> active#(isNePal(X)) p13: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p14: mark#(isPal(X)) -> active#(isPal(X)) p15: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = max{1, x1 - 9} ___A(x1,x2) = max{x1 + 82, x2} mark#_A(x1) = max{14, x1 - 9} mark_A(x1) = x1 nil_A = 12 and_A(x1,x2) = max{x1 + 24, x2} tt_A = 69 isList_A(x1) = x1 + 57 isNeList_A(x1) = x1 + 57 isNePal_A(x1) = x1 + 37 isPal_A(x1) = x1 + 119 active_A(x1) = max{12, x1} isQid_A(x1) = x1 + 12 a_A = 57 e_A = 70 i_A = 57 o_A = 70 u_A = 58 precedence: active# = __ = mark# = mark = nil = and = tt = isList = isNeList = isNePal = isPal = active = isQid = a = e = i = o = u partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(isNePal) = [] pi(isPal) = [] pi(active) = [] pi(isQid) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = 506 ___A(x1,x2) = 421 mark#_A(x1) = 506 mark_A(x1) = 420 nil_A = 380 and_A(x1,x2) = 817 tt_A = 639 isList_A(x1) = 505 isNeList_A(x1) = 660 isNePal_A(x1) = 639 isPal_A(x1) = 508 active_A(x1) = 420 isQid_A(x1) = 414 a_A = 380 e_A = 380 i_A = 380 o_A = 380 u_A = 419 precedence: isQid > a = e = u > active# = __ = mark# = mark = nil = and = active = i = o > isNePal > tt = isList = isNeList = isPal partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(isNePal) = [] pi(isPal) = [] pi(active) = [] pi(isQid) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X2) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(and(tt(),X)) -> mark#(X) p7: mark#(isList(X)) -> active#(isList(X)) p8: active#(isList(V)) -> mark#(isNeList(V)) p9: mark#(isNeList(X)) -> active#(isNeList(X)) p10: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p11: mark#(isNePal(X)) -> active#(isNePal(X)) p12: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p13: mark#(isPal(X)) -> active#(isPal(X)) p14: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isPal(X)) -> active#(isPal(X)) p3: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p4: mark#(isNePal(X)) -> active#(isNePal(X)) p5: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p6: mark#(isNeList(X)) -> active#(isNeList(X)) p7: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p8: mark#(isList(X)) -> active#(isList(X)) p9: active#(isList(V)) -> mark#(isNeList(V)) p10: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p11: active#(and(tt(),X)) -> mark#(X) p12: mark#(__(X1,X2)) -> mark#(X2) p13: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p14: active#(__(nil(),X)) -> mark#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 44 ___A(x1,x2) = 33 mark#_A(x1) = 77 isPal_A(x1) = 29 isNeList_A(x1) = 33 and_A(x1,x2) = 33 isList_A(x1) = 33 isNePal_A(x1) = 29 mark_A(x1) = 67 tt_A = 30 nil_A = 0 active_A(x1) = max{67, x1 + 34} isQid_A(x1) = 33 a_A = 0 e_A = 29 i_A = 29 o_A = 29 u_A = 29 precedence: active# = __ = mark# = isPal = isNeList = and = isList = isNePal = mark = tt = nil = active = isQid = a = e = i = o = u partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(isPal) = [] pi(isNeList) = [] pi(and) = [] pi(isList) = [] pi(isNePal) = [] pi(mark) = [] pi(tt) = [] pi(nil) = [] pi(active) = [] pi(isQid) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = 526 ___A(x1,x2) = 339 mark#_A(x1) = 526 isPal_A(x1) = 488 isNeList_A(x1) = 485 and_A(x1,x2) = 258 isList_A(x1) = 491 isNePal_A(x1) = 500 mark_A(x1) = 484 tt_A = 527 nil_A = 483 active_A(x1) = 484 isQid_A(x1) = 369 a_A = 482 e_A = 482 i_A = 482 o_A = 482 u_A = 482 precedence: __ = a = e = u > active# = mark# > isPal = isNeList = and = isList = isNePal = mark = tt = nil = active = isQid = i = o partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(isPal) = [] pi(isNeList) = [] pi(and) = [] pi(isList) = [] pi(isNePal) = [] pi(mark) = [] pi(tt) = [] pi(nil) = [] pi(active) = [] pi(isQid) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p3: mark#(isNePal(X)) -> active#(isNePal(X)) p4: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p5: mark#(isNeList(X)) -> active#(isNeList(X)) p6: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p7: mark#(isList(X)) -> active#(isList(X)) p8: active#(isList(V)) -> mark#(isNeList(V)) p9: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p10: active#(and(tt(),X)) -> mark#(X) p11: mark#(__(X1,X2)) -> mark#(X2) p12: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p13: active#(__(nil(),X)) -> mark#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X2) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(and(tt(),X)) -> mark#(X) p7: mark#(isList(X)) -> active#(isList(X)) p8: active#(isList(V)) -> mark#(isNeList(V)) p9: mark#(isNeList(X)) -> active#(isNeList(X)) p10: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p11: mark#(isNePal(X)) -> active#(isNePal(X)) p12: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p13: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = x1 ___A(x1,x2) = 12 mark#_A(x1) = 12 mark_A(x1) = 32 nil_A = 67 and_A(x1,x2) = 12 tt_A = 11 isList_A(x1) = 12 isNeList_A(x1) = 12 isNePal_A(x1) = 0 active_A(x1) = 32 isQid_A(x1) = 165 isPal_A(x1) = 188 a_A = 1 e_A = 116 i_A = 32 o_A = 32 u_A = 1 precedence: active# = __ = mark# = mark = nil = and = tt = isList = isNeList = isNePal = active = isQid = isPal = a = e = i = o = u partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(isNePal) = [] pi(active) = [] pi(isQid) = [] pi(isPal) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = max{37, x1 - 4} ___A(x1,x2) = 42 mark#_A(x1) = 38 mark_A(x1) = 52 nil_A = 28 and_A(x1,x2) = 42 tt_A = 62 isList_A(x1) = 42 isNeList_A(x1) = 42 isNePal_A(x1) = 27 active_A(x1) = 52 isQid_A(x1) = 24 isPal_A(x1) = 24 a_A = 28 e_A = 28 i_A = 28 o_A = 28 u_A = 47 precedence: u > o > i > e > isPal > a > isNeList > __ > active# = mark# = mark = nil = and = tt = isList = active > isNePal = isQid partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(isNePal) = [] pi(active) = [] pi(isQid) = [] pi(isPal) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p11 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X2) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(and(tt(),X)) -> mark#(X) p7: mark#(isList(X)) -> active#(isList(X)) p8: active#(isList(V)) -> mark#(isNeList(V)) p9: mark#(isNeList(X)) -> active#(isNeList(X)) p10: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p11: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p12: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isNeList(X)) -> active#(isNeList(X)) p3: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p4: mark#(isList(X)) -> active#(isList(X)) p5: active#(isNeList(__(V1,V2))) -> mark#(and(isList(V1),isNeList(V2))) p6: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p7: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p8: mark#(__(X1,X2)) -> mark#(X2) p9: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p10: active#(isList(V)) -> mark#(isNeList(V)) p11: active#(and(tt(),X)) -> mark#(X) p12: active#(__(nil(),X)) -> mark#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = ((0,1),(0,0)) x1 + (6,5) ___A(x1,x2) = ((1,1),(0,1)) x1 + x2 + (2,3) mark#_A(x1) = ((0,1),(0,0)) x1 + (6,5) isNeList_A(x1) = x1 + (0,1) and_A(x1,x2) = ((1,1),(0,1)) x1 + x2 + (1,0) isList_A(x1) = x1 + (0,1) mark_A(x1) = x1 tt_A() = (1,2) nil_A() = (2,1) active_A(x1) = x1 isQid_A(x1) = x1 isNePal_A(x1) = x1 + (0,7) isPal_A(x1) = x1 + (0,7) a_A() = (2,2) e_A() = (2,2) i_A() = (2,2) o_A() = (2,2) u_A() = (2,2) precedence: o > e > u > active# = mark# > isList > __ > isPal > isNePal > isNeList = mark > active > and > i > a > tt > nil = isQid partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(isNeList) = [1] pi(and) = [1, 2] pi(isList) = [1] pi(mark) = [1] pi(tt) = [] pi(nil) = [] pi(active) = [1] pi(isQid) = [] pi(isNePal) = [] pi(isPal) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = (29,15) ___A(x1,x2) = (28,14) mark#_A(x1) = (29,15) isNeList_A(x1) = ((1,0),(0,0)) x1 + (0,10) and_A(x1,x2) = ((0,0),(0,1)) x1 + ((0,0),(0,1)) x2 isList_A(x1) = ((0,1),(0,0)) x1 mark_A(x1) = ((0,1),(0,0)) x1 + (15,0) tt_A() = (1,4) nil_A() = (2,0) active_A(x1) = ((1,1),(0,1)) x1 + (12,0) isQid_A(x1) = (20,6) isNePal_A(x1) = (30,6) isPal_A(x1) = (29,6) a_A() = (3,4) e_A() = (3,4) i_A() = (3,0) o_A() = (3,0) u_A() = (0,0) precedence: a > isPal > isNeList > isList = mark = isNePal = e = i > active# = __ = mark# = and = u > active > o > nil > isQid > tt partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(isNeList) = [] pi(and) = [] pi(isList) = [] pi(mark) = [] pi(tt) = [] pi(nil) = [] pi(active) = [1] pi(isQid) = [] pi(isNePal) = [] pi(isPal) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(isNeList(X)) -> active#(isNeList(X)) p3: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) p4: mark#(isList(X)) -> active#(isList(X)) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p7: mark#(__(X1,X2)) -> mark#(X2) p8: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p9: active#(isList(V)) -> mark#(isNeList(V)) p10: active#(and(tt(),X)) -> mark#(X) p11: active#(__(nil(),X)) -> mark#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> active#(__(mark(X1),mark(X2))) p3: active#(__(nil(),X)) -> mark#(X) p4: mark#(__(X1,X2)) -> mark#(X2) p5: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p6: active#(and(tt(),X)) -> mark#(X) p7: mark#(isList(X)) -> active#(isList(X)) p8: active#(isList(V)) -> mark#(isNeList(V)) p9: mark#(isNeList(X)) -> active#(isNeList(X)) p10: active#(isList(__(V1,V2))) -> mark#(and(isList(V1),isList(V2))) p11: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = x1 ___A(x1,x2) = ((1,1),(0,1)) x1 + x2 + (2,12) mark#_A(x1) = x1 + (3,0) mark_A(x1) = x1 nil_A() = (11,1) and_A(x1,x2) = ((0,0),(0,1)) x1 + x2 + (4,13) tt_A() = (10,1) isList_A(x1) = ((0,1),(1,1)) x1 + (9,1) isNeList_A(x1) = ((0,1),(1,1)) x1 + (5,1) active_A(x1) = x1 isQid_A(x1) = ((0,1),(0,1)) x1 + (4,0) isNePal_A(x1) = ((0,1),(0,1)) x1 + (10,0) isPal_A(x1) = ((0,1),(0,1)) x1 + (10,0) a_A() = (11,7) e_A() = (9,7) i_A() = (11,7) o_A() = (10,7) u_A() = (1,7) precedence: u > isPal > isNePal > o > a > i > e > and > isNeList > isQid > active# = __ = mark = active > mark# > isList > nil = tt partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [1] pi(mark) = [1] pi(nil) = [] pi(and) = [2] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(active) = [1] pi(isQid) = [] pi(isNePal) = [] pi(isPal) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = (9,4) ___A(x1,x2) = (0,1) mark#_A(x1) = (1,2) mark_A(x1) = (2,3) nil_A() = (4,3) and_A(x1,x2) = ((0,1),(0,0)) x2 + (3,3) tt_A() = (3,3) isList_A(x1) = (8,4) isNeList_A(x1) = (8,4) active_A(x1) = (2,3) isQid_A(x1) = (0,0) isNePal_A(x1) = (7,3) isPal_A(x1) = (7,3) a_A() = (4,3) e_A() = (0,0) i_A() = (4,3) o_A() = (2,0) u_A() = (4,3) precedence: nil > isPal = a > u > i > isNeList > isQid > tt > mark = active = e = o > active# = and > mark# > isList > __ = isNePal partial status: pi(active#) = [] pi(__) = [] pi(mark#) = [] pi(mark) = [] pi(nil) = [] pi(and) = [] pi(tt) = [] pi(isList) = [] pi(isNeList) = [] pi(active) = [] pi(isQid) = [] pi(isNePal) = [] pi(isPal) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p2, p3, p5, p6, p7, p8, p9, p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> mark#(__(X,__(Y,Z))) p2: mark#(__(X1,X2)) -> mark#(X2) p3: active#(isNeList(__(V1,V2))) -> mark#(and(isNeList(V1),isList(V2))) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The estimated dependency graph contains the following SCCs: {p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(__(X1,X2)) -> mark#(X2) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 2 ___A(x1,x2) = max{x1 + 2, x2 + 2} precedence: __ > mark# partial status: pi(mark#) = [1] pi(__) = [1, 2] 2. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 3 ___A(x1,x2) = max{x1 - 1, x2} precedence: mark# = __ partial status: pi(mark#) = [] pi(__) = [2] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: __#(mark(X1),X2) -> __#(X1,X2) p2: __#(X1,active(X2)) -> __#(X1,X2) p3: __#(active(X1),X2) -> __#(X1,X2) p4: __#(X1,mark(X2)) -> __#(X1,X2) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: __#_A(x1,x2) = max{3, x1 + 1, x2 + 1} mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{1, x1} precedence: __# = mark = active partial status: pi(__#) = [1, 2] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: __#_A(x1,x2) = max{x1 + 1, x2 + 1} mark_A(x1) = x1 active_A(x1) = x1 precedence: __# = mark = active partial status: pi(__#) = [1, 2] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNeList#(mark(X)) -> isNeList#(X) p2: isNeList#(active(X)) -> isNeList#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isNeList#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > isNeList# partial status: pi(isNeList#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: isNeList#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: isNeList# = mark = active partial status: pi(isNeList#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: and#(mark(X1),X2) -> and#(X1,X2) p2: and#(X1,active(X2)) -> and#(X1,X2) p3: and#(active(X1),X2) -> and#(X1,X2) p4: and#(X1,mark(X2)) -> and#(X1,X2) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: and#_A(x1,x2) = max{2, x1 + 1, x2 + 1} mark_A(x1) = max{1, x1} active_A(x1) = max{1, x1} precedence: and# = mark = active partial status: pi(and#) = [1, 2] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: and#_A(x1,x2) = max{x1 + 1, x2 - 1} mark_A(x1) = x1 active_A(x1) = x1 precedence: and# = mark = active partial status: pi(and#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isList#(mark(X)) -> isList#(X) p2: isList#(active(X)) -> isList#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isList#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > isList# partial status: pi(isList#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: isList#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: isList# = mark = active partial status: pi(isList#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isQid#(mark(X)) -> isQid#(X) p2: isQid#(active(X)) -> isQid#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isQid#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > isQid# partial status: pi(isQid#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: isQid#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: isQid# = mark = active partial status: pi(isQid#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isPal#(mark(X)) -> isPal#(X) p2: isPal#(active(X)) -> isPal#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isPal#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > isPal# partial status: pi(isPal#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: isPal#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: isPal# = mark = active partial status: pi(isPal#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNePal#(mark(X)) -> isNePal#(X) p2: isNePal#(active(X)) -> isNePal#(X) and R consists of: r1: active(__(__(X,Y),Z)) -> mark(__(X,__(Y,Z))) r2: active(__(X,nil())) -> mark(X) r3: active(__(nil(),X)) -> mark(X) r4: active(and(tt(),X)) -> mark(X) r5: active(isList(V)) -> mark(isNeList(V)) r6: active(isList(nil())) -> mark(tt()) r7: active(isList(__(V1,V2))) -> mark(and(isList(V1),isList(V2))) r8: active(isNeList(V)) -> mark(isQid(V)) r9: active(isNeList(__(V1,V2))) -> mark(and(isList(V1),isNeList(V2))) r10: active(isNeList(__(V1,V2))) -> mark(and(isNeList(V1),isList(V2))) r11: active(isNePal(V)) -> mark(isQid(V)) r12: active(isNePal(__(I,__(P,I)))) -> mark(and(isQid(I),isPal(P))) r13: active(isPal(V)) -> mark(isNePal(V)) r14: active(isPal(nil())) -> mark(tt()) r15: active(isQid(a())) -> mark(tt()) r16: active(isQid(e())) -> mark(tt()) r17: active(isQid(i())) -> mark(tt()) r18: active(isQid(o())) -> mark(tt()) r19: active(isQid(u())) -> mark(tt()) r20: mark(__(X1,X2)) -> active(__(mark(X1),mark(X2))) r21: mark(nil()) -> active(nil()) r22: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r23: mark(tt()) -> active(tt()) r24: mark(isList(X)) -> active(isList(X)) r25: mark(isNeList(X)) -> active(isNeList(X)) r26: mark(isQid(X)) -> active(isQid(X)) r27: mark(isNePal(X)) -> active(isNePal(X)) r28: mark(isPal(X)) -> active(isPal(X)) r29: mark(a()) -> active(a()) r30: mark(e()) -> active(e()) r31: mark(i()) -> active(i()) r32: mark(o()) -> active(o()) r33: mark(u()) -> active(u()) r34: __(mark(X1),X2) -> __(X1,X2) r35: __(X1,mark(X2)) -> __(X1,X2) r36: __(active(X1),X2) -> __(X1,X2) r37: __(X1,active(X2)) -> __(X1,X2) r38: and(mark(X1),X2) -> and(X1,X2) r39: and(X1,mark(X2)) -> and(X1,X2) r40: and(active(X1),X2) -> and(X1,X2) r41: and(X1,active(X2)) -> and(X1,X2) r42: isList(mark(X)) -> isList(X) r43: isList(active(X)) -> isList(X) r44: isNeList(mark(X)) -> isNeList(X) r45: isNeList(active(X)) -> isNeList(X) r46: isQid(mark(X)) -> isQid(X) r47: isQid(active(X)) -> isQid(X) r48: isNePal(mark(X)) -> isNePal(X) r49: isNePal(active(X)) -> isNePal(X) r50: isPal(mark(X)) -> isPal(X) r51: isPal(active(X)) -> isPal(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isNePal#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > isNePal# partial status: pi(isNePal#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: isNePal#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: isNePal# = mark = active partial status: pi(isNePal#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains.