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(U11(tt(),V)) -> mark(U12(isNeList(V))) active(U12(tt())) -> mark(tt()) active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) active(U22(tt(),V2)) -> mark(U23(isList(V2))) active(U23(tt())) -> mark(tt()) active(U31(tt(),V)) -> mark(U32(isQid(V))) active(U32(tt())) -> mark(tt()) active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) active(U43(tt())) -> mark(tt()) active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) active(U52(tt(),V2)) -> mark(U53(isList(V2))) active(U53(tt())) -> mark(tt()) active(U61(tt(),V)) -> mark(U62(isQid(V))) active(U62(tt())) -> mark(tt()) active(U71(tt(),V)) -> mark(U72(isNePal(V))) active(U72(tt())) -> mark(tt()) active(and(tt(),X)) -> mark(X) active(isList(V)) -> mark(U11(isPalListKind(V),V)) active(isList(nil())) -> mark(tt()) active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) active(isPal(V)) -> mark(U71(isPalListKind(V),V)) active(isPal(nil())) -> mark(tt()) active(isPalListKind(a())) -> mark(tt()) active(isPalListKind(e())) -> mark(tt()) active(isPalListKind(i())) -> mark(tt()) active(isPalListKind(nil())) -> mark(tt()) active(isPalListKind(o())) -> mark(tt()) active(isPalListKind(u())) -> mark(tt()) active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) 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()) active(__(X1,X2)) -> __(active(X1),X2) active(__(X1,X2)) -> __(X1,active(X2)) active(U11(X1,X2)) -> U11(active(X1),X2) active(U12(X)) -> U12(active(X)) active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) active(U22(X1,X2)) -> U22(active(X1),X2) active(U23(X)) -> U23(active(X)) active(U31(X1,X2)) -> U31(active(X1),X2) active(U32(X)) -> U32(active(X)) active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) active(U42(X1,X2)) -> U42(active(X1),X2) active(U43(X)) -> U43(active(X)) active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) active(U52(X1,X2)) -> U52(active(X1),X2) active(U53(X)) -> U53(active(X)) active(U61(X1,X2)) -> U61(active(X1),X2) active(U62(X)) -> U62(active(X)) active(U71(X1,X2)) -> U71(active(X1),X2) active(U72(X)) -> U72(active(X)) active(and(X1,X2)) -> and(active(X1),X2) __(mark(X1),X2) -> mark(__(X1,X2)) __(X1,mark(X2)) -> mark(__(X1,X2)) U11(mark(X1),X2) -> mark(U11(X1,X2)) U12(mark(X)) -> mark(U12(X)) U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) U22(mark(X1),X2) -> mark(U22(X1,X2)) U23(mark(X)) -> mark(U23(X)) U31(mark(X1),X2) -> mark(U31(X1,X2)) U32(mark(X)) -> mark(U32(X)) U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) U42(mark(X1),X2) -> mark(U42(X1,X2)) U43(mark(X)) -> mark(U43(X)) U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) U52(mark(X1),X2) -> mark(U52(X1,X2)) U53(mark(X)) -> mark(U53(X)) U61(mark(X1),X2) -> mark(U61(X1,X2)) U62(mark(X)) -> mark(U62(X)) U71(mark(X1),X2) -> mark(U71(X1,X2)) U72(mark(X)) -> mark(U72(X)) and(mark(X1),X2) -> mark(and(X1,X2)) proper(__(X1,X2)) -> __(proper(X1),proper(X2)) proper(nil()) -> ok(nil()) proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) proper(tt()) -> ok(tt()) proper(U12(X)) -> U12(proper(X)) proper(isNeList(X)) -> isNeList(proper(X)) proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) proper(isList(X)) -> isList(proper(X)) proper(U23(X)) -> U23(proper(X)) proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) proper(U32(X)) -> U32(proper(X)) proper(isQid(X)) -> isQid(proper(X)) proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) proper(U43(X)) -> U43(proper(X)) proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) proper(U53(X)) -> U53(proper(X)) proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) proper(U62(X)) -> U62(proper(X)) proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) proper(U72(X)) -> U72(proper(X)) proper(isNePal(X)) -> isNePal(proper(X)) proper(and(X1,X2)) -> and(proper(X1),proper(X2)) proper(isPalListKind(X)) -> isPalListKind(proper(X)) proper(isPal(X)) -> isPal(proper(X)) proper(a()) -> ok(a()) proper(e()) -> ok(e()) proper(i()) -> ok(i()) proper(o()) -> ok(o()) proper(u()) -> ok(u()) __(ok(X1),ok(X2)) -> ok(__(X1,X2)) U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) U12(ok(X)) -> ok(U12(X)) isNeList(ok(X)) -> ok(isNeList(X)) U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) isList(ok(X)) -> ok(isList(X)) U23(ok(X)) -> ok(U23(X)) U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) U32(ok(X)) -> ok(U32(X)) isQid(ok(X)) -> ok(isQid(X)) U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) U43(ok(X)) -> ok(U43(X)) U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) U53(ok(X)) -> ok(U53(X)) U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) U62(ok(X)) -> ok(U62(X)) U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) U72(ok(X)) -> ok(U72(X)) isNePal(ok(X)) -> ok(isNePal(X)) and(ok(X1),ok(X2)) -> ok(and(X1,X2)) isPalListKind(ok(X)) -> ok(isPalListKind(X)) isPal(ok(X)) -> ok(isPal(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(__(__(X,Y),Z)) -> __#(X,__(Y,Z)) p2: active#(__(__(X,Y),Z)) -> __#(Y,Z) p3: active#(U11(tt(),V)) -> U12#(isNeList(V)) p4: active#(U11(tt(),V)) -> isNeList#(V) p5: active#(U21(tt(),V1,V2)) -> U22#(isList(V1),V2) p6: active#(U21(tt(),V1,V2)) -> isList#(V1) p7: active#(U22(tt(),V2)) -> U23#(isList(V2)) p8: active#(U22(tt(),V2)) -> isList#(V2) p9: active#(U31(tt(),V)) -> U32#(isQid(V)) p10: active#(U31(tt(),V)) -> isQid#(V) p11: active#(U41(tt(),V1,V2)) -> U42#(isList(V1),V2) p12: active#(U41(tt(),V1,V2)) -> isList#(V1) p13: active#(U42(tt(),V2)) -> U43#(isNeList(V2)) p14: active#(U42(tt(),V2)) -> isNeList#(V2) p15: active#(U51(tt(),V1,V2)) -> U52#(isNeList(V1),V2) p16: active#(U51(tt(),V1,V2)) -> isNeList#(V1) p17: active#(U52(tt(),V2)) -> U53#(isList(V2)) p18: active#(U52(tt(),V2)) -> isList#(V2) p19: active#(U61(tt(),V)) -> U62#(isQid(V)) p20: active#(U61(tt(),V)) -> isQid#(V) p21: active#(U71(tt(),V)) -> U72#(isNePal(V)) p22: active#(U71(tt(),V)) -> isNePal#(V) p23: active#(isList(V)) -> U11#(isPalListKind(V),V) p24: active#(isList(V)) -> isPalListKind#(V) p25: active#(isList(__(V1,V2))) -> U21#(and(isPalListKind(V1),isPalListKind(V2)),V1,V2) p26: active#(isList(__(V1,V2))) -> and#(isPalListKind(V1),isPalListKind(V2)) p27: active#(isList(__(V1,V2))) -> isPalListKind#(V1) p28: active#(isList(__(V1,V2))) -> isPalListKind#(V2) p29: active#(isNeList(V)) -> U31#(isPalListKind(V),V) p30: active#(isNeList(V)) -> isPalListKind#(V) p31: active#(isNeList(__(V1,V2))) -> U41#(and(isPalListKind(V1),isPalListKind(V2)),V1,V2) p32: active#(isNeList(__(V1,V2))) -> and#(isPalListKind(V1),isPalListKind(V2)) p33: active#(isNeList(__(V1,V2))) -> isPalListKind#(V1) p34: active#(isNeList(__(V1,V2))) -> isPalListKind#(V2) p35: active#(isNeList(__(V1,V2))) -> U51#(and(isPalListKind(V1),isPalListKind(V2)),V1,V2) p36: active#(isNeList(__(V1,V2))) -> and#(isPalListKind(V1),isPalListKind(V2)) p37: active#(isNeList(__(V1,V2))) -> isPalListKind#(V1) p38: active#(isNeList(__(V1,V2))) -> isPalListKind#(V2) p39: active#(isNePal(V)) -> U61#(isPalListKind(V),V) p40: active#(isNePal(V)) -> isPalListKind#(V) p41: active#(isNePal(__(I,__(P,I)))) -> and#(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P))) p42: active#(isNePal(__(I,__(P,I)))) -> and#(isQid(I),isPalListKind(I)) p43: active#(isNePal(__(I,__(P,I)))) -> isQid#(I) p44: active#(isNePal(__(I,__(P,I)))) -> isPalListKind#(I) p45: active#(isNePal(__(I,__(P,I)))) -> and#(isPal(P),isPalListKind(P)) p46: active#(isNePal(__(I,__(P,I)))) -> isPal#(P) p47: active#(isNePal(__(I,__(P,I)))) -> isPalListKind#(P) p48: active#(isPal(V)) -> U71#(isPalListKind(V),V) p49: active#(isPal(V)) -> isPalListKind#(V) p50: active#(isPalListKind(__(V1,V2))) -> and#(isPalListKind(V1),isPalListKind(V2)) p51: active#(isPalListKind(__(V1,V2))) -> isPalListKind#(V1) p52: active#(isPalListKind(__(V1,V2))) -> isPalListKind#(V2) p53: active#(__(X1,X2)) -> __#(active(X1),X2) p54: active#(__(X1,X2)) -> active#(X1) p55: active#(__(X1,X2)) -> __#(X1,active(X2)) p56: active#(__(X1,X2)) -> active#(X2) p57: active#(U11(X1,X2)) -> U11#(active(X1),X2) p58: active#(U11(X1,X2)) -> active#(X1) p59: active#(U12(X)) -> U12#(active(X)) p60: active#(U12(X)) -> active#(X) p61: active#(U21(X1,X2,X3)) -> U21#(active(X1),X2,X3) p62: active#(U21(X1,X2,X3)) -> active#(X1) p63: active#(U22(X1,X2)) -> U22#(active(X1),X2) p64: active#(U22(X1,X2)) -> active#(X1) p65: active#(U23(X)) -> U23#(active(X)) p66: active#(U23(X)) -> active#(X) p67: active#(U31(X1,X2)) -> U31#(active(X1),X2) p68: active#(U31(X1,X2)) -> active#(X1) p69: active#(U32(X)) -> U32#(active(X)) p70: active#(U32(X)) -> active#(X) p71: active#(U41(X1,X2,X3)) -> U41#(active(X1),X2,X3) p72: active#(U41(X1,X2,X3)) -> active#(X1) p73: active#(U42(X1,X2)) -> U42#(active(X1),X2) p74: active#(U42(X1,X2)) -> active#(X1) p75: active#(U43(X)) -> U43#(active(X)) p76: active#(U43(X)) -> active#(X) p77: active#(U51(X1,X2,X3)) -> U51#(active(X1),X2,X3) p78: active#(U51(X1,X2,X3)) -> active#(X1) p79: active#(U52(X1,X2)) -> U52#(active(X1),X2) p80: active#(U52(X1,X2)) -> active#(X1) p81: active#(U53(X)) -> U53#(active(X)) p82: active#(U53(X)) -> active#(X) p83: active#(U61(X1,X2)) -> U61#(active(X1),X2) p84: active#(U61(X1,X2)) -> active#(X1) p85: active#(U62(X)) -> U62#(active(X)) p86: active#(U62(X)) -> active#(X) p87: active#(U71(X1,X2)) -> U71#(active(X1),X2) p88: active#(U71(X1,X2)) -> active#(X1) p89: active#(U72(X)) -> U72#(active(X)) p90: active#(U72(X)) -> active#(X) p91: active#(and(X1,X2)) -> and#(active(X1),X2) p92: active#(and(X1,X2)) -> active#(X1) p93: __#(mark(X1),X2) -> __#(X1,X2) p94: __#(X1,mark(X2)) -> __#(X1,X2) p95: U11#(mark(X1),X2) -> U11#(X1,X2) p96: U12#(mark(X)) -> U12#(X) p97: U21#(mark(X1),X2,X3) -> U21#(X1,X2,X3) p98: U22#(mark(X1),X2) -> U22#(X1,X2) p99: U23#(mark(X)) -> U23#(X) p100: U31#(mark(X1),X2) -> U31#(X1,X2) p101: U32#(mark(X)) -> U32#(X) p102: U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3) p103: U42#(mark(X1),X2) -> U42#(X1,X2) p104: U43#(mark(X)) -> U43#(X) p105: U51#(mark(X1),X2,X3) -> U51#(X1,X2,X3) p106: U52#(mark(X1),X2) -> U52#(X1,X2) p107: U53#(mark(X)) -> U53#(X) p108: U61#(mark(X1),X2) -> U61#(X1,X2) p109: U62#(mark(X)) -> U62#(X) p110: U71#(mark(X1),X2) -> U71#(X1,X2) p111: U72#(mark(X)) -> U72#(X) p112: and#(mark(X1),X2) -> and#(X1,X2) p113: proper#(__(X1,X2)) -> __#(proper(X1),proper(X2)) p114: proper#(__(X1,X2)) -> proper#(X1) p115: proper#(__(X1,X2)) -> proper#(X2) p116: proper#(U11(X1,X2)) -> U11#(proper(X1),proper(X2)) p117: proper#(U11(X1,X2)) -> proper#(X1) p118: proper#(U11(X1,X2)) -> proper#(X2) p119: proper#(U12(X)) -> U12#(proper(X)) p120: proper#(U12(X)) -> proper#(X) p121: proper#(isNeList(X)) -> isNeList#(proper(X)) p122: proper#(isNeList(X)) -> proper#(X) p123: proper#(U21(X1,X2,X3)) -> U21#(proper(X1),proper(X2),proper(X3)) p124: proper#(U21(X1,X2,X3)) -> proper#(X1) p125: proper#(U21(X1,X2,X3)) -> proper#(X2) p126: proper#(U21(X1,X2,X3)) -> proper#(X3) p127: proper#(U22(X1,X2)) -> U22#(proper(X1),proper(X2)) p128: proper#(U22(X1,X2)) -> proper#(X1) p129: proper#(U22(X1,X2)) -> proper#(X2) p130: proper#(isList(X)) -> isList#(proper(X)) p131: proper#(isList(X)) -> proper#(X) p132: proper#(U23(X)) -> U23#(proper(X)) p133: proper#(U23(X)) -> proper#(X) p134: proper#(U31(X1,X2)) -> U31#(proper(X1),proper(X2)) p135: proper#(U31(X1,X2)) -> proper#(X1) p136: proper#(U31(X1,X2)) -> proper#(X2) p137: proper#(U32(X)) -> U32#(proper(X)) p138: proper#(U32(X)) -> proper#(X) p139: proper#(isQid(X)) -> isQid#(proper(X)) p140: proper#(isQid(X)) -> proper#(X) p141: proper#(U41(X1,X2,X3)) -> U41#(proper(X1),proper(X2),proper(X3)) p142: proper#(U41(X1,X2,X3)) -> proper#(X1) p143: proper#(U41(X1,X2,X3)) -> proper#(X2) p144: proper#(U41(X1,X2,X3)) -> proper#(X3) p145: proper#(U42(X1,X2)) -> U42#(proper(X1),proper(X2)) p146: proper#(U42(X1,X2)) -> proper#(X1) p147: proper#(U42(X1,X2)) -> proper#(X2) p148: proper#(U43(X)) -> U43#(proper(X)) p149: proper#(U43(X)) -> proper#(X) p150: proper#(U51(X1,X2,X3)) -> U51#(proper(X1),proper(X2),proper(X3)) p151: proper#(U51(X1,X2,X3)) -> proper#(X1) p152: proper#(U51(X1,X2,X3)) -> proper#(X2) p153: proper#(U51(X1,X2,X3)) -> proper#(X3) p154: proper#(U52(X1,X2)) -> U52#(proper(X1),proper(X2)) p155: proper#(U52(X1,X2)) -> proper#(X1) p156: proper#(U52(X1,X2)) -> proper#(X2) p157: proper#(U53(X)) -> U53#(proper(X)) p158: proper#(U53(X)) -> proper#(X) p159: proper#(U61(X1,X2)) -> U61#(proper(X1),proper(X2)) p160: proper#(U61(X1,X2)) -> proper#(X1) p161: proper#(U61(X1,X2)) -> proper#(X2) p162: proper#(U62(X)) -> U62#(proper(X)) p163: proper#(U62(X)) -> proper#(X) p164: proper#(U71(X1,X2)) -> U71#(proper(X1),proper(X2)) p165: proper#(U71(X1,X2)) -> proper#(X1) p166: proper#(U71(X1,X2)) -> proper#(X2) p167: proper#(U72(X)) -> U72#(proper(X)) p168: proper#(U72(X)) -> proper#(X) p169: proper#(isNePal(X)) -> isNePal#(proper(X)) p170: proper#(isNePal(X)) -> proper#(X) p171: proper#(and(X1,X2)) -> and#(proper(X1),proper(X2)) p172: proper#(and(X1,X2)) -> proper#(X1) p173: proper#(and(X1,X2)) -> proper#(X2) p174: proper#(isPalListKind(X)) -> isPalListKind#(proper(X)) p175: proper#(isPalListKind(X)) -> proper#(X) p176: proper#(isPal(X)) -> isPal#(proper(X)) p177: proper#(isPal(X)) -> proper#(X) p178: __#(ok(X1),ok(X2)) -> __#(X1,X2) p179: U11#(ok(X1),ok(X2)) -> U11#(X1,X2) p180: U12#(ok(X)) -> U12#(X) p181: isNeList#(ok(X)) -> isNeList#(X) p182: U21#(ok(X1),ok(X2),ok(X3)) -> U21#(X1,X2,X3) p183: U22#(ok(X1),ok(X2)) -> U22#(X1,X2) p184: isList#(ok(X)) -> isList#(X) p185: U23#(ok(X)) -> U23#(X) p186: U31#(ok(X1),ok(X2)) -> U31#(X1,X2) p187: U32#(ok(X)) -> U32#(X) p188: isQid#(ok(X)) -> isQid#(X) p189: U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3) p190: U42#(ok(X1),ok(X2)) -> U42#(X1,X2) p191: U43#(ok(X)) -> U43#(X) p192: U51#(ok(X1),ok(X2),ok(X3)) -> U51#(X1,X2,X3) p193: U52#(ok(X1),ok(X2)) -> U52#(X1,X2) p194: U53#(ok(X)) -> U53#(X) p195: U61#(ok(X1),ok(X2)) -> U61#(X1,X2) p196: U62#(ok(X)) -> U62#(X) p197: U71#(ok(X1),ok(X2)) -> U71#(X1,X2) p198: U72#(ok(X)) -> U72#(X) p199: isNePal#(ok(X)) -> isNePal#(X) p200: and#(ok(X1),ok(X2)) -> and#(X1,X2) p201: isPalListKind#(ok(X)) -> isPalListKind#(X) p202: isPal#(ok(X)) -> isPal#(X) p203: top#(mark(X)) -> top#(proper(X)) p204: top#(mark(X)) -> proper#(X) p205: top#(ok(X)) -> top#(active(X)) p206: top#(ok(X)) -> active#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p203, p205} {p54, p56, p58, p60, p62, p64, p66, p68, p70, p72, p74, p76, p78, p80, p82, p84, p86, p88, p90, p92} {p114, p115, p117, p118, p120, p122, p124, p125, p126, p128, p129, p131, p133, p135, p136, p138, p140, p142, p143, p144, p146, p147, p149, p151, p152, p153, p155, p156, p158, p160, p161, p163, p165, p166, p168, p170, p172, p173, p175, p177} {p93, p94, p178} {p96, p180} {p181} {p98, p183} {p184} {p99, p185} {p101, p187} {p188} {p103, p190} {p104, p191} {p106, p193} {p107, p194} {p109, p196} {p111, p198} {p199} {p95, p179} {p201} {p97, p182} {p112, p200} {p100, p186} {p102, p189} {p105, p192} {p108, p195} {p202} {p110, p197} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: top#(ok(X)) -> top#(active(X)) p2: top#(mark(X)) -> top#(proper(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140 Take the monotone reduction pair: lexicographic path order with precedence: precedence: u > o > i > e > a > nil > tt > __ > isPal > U71 > isNePal > U61 > U41 > and > U21 > U22 > U51 > U52 > isList > U11 > U42 > isNeList > isPalListKind > U31 > isQid > U72 > U62 > U53 > U43 > U32 > U23 > U12 > mark > proper > ok > active > top# argument filter: pi(top#) = [1] pi(ok) = 1 pi(active) = 1 pi(mark) = [1] pi(proper) = 1 pi(__) = [1, 2] pi(U11) = [1, 2] pi(U12) = [1] pi(U21) = [1, 2, 3] pi(U22) = [1, 2] pi(U23) = [1] pi(U31) = [1, 2] pi(U32) = [1] pi(U41) = [1, 2, 3] pi(U42) = [1, 2] pi(U43) = [1] pi(U51) = [1, 2, 3] pi(U52) = [1, 2] pi(U53) = [1] pi(U61) = [1, 2] pi(U62) = [1] pi(U71) = [1, 2] pi(U72) = [1] pi(and) = [1, 2] pi(isNeList) = [1] pi(isList) = [1] pi(isQid) = [1] pi(isNePal) = [1] pi(isPalListKind) = [1] pi(isPal) = [1] pi(nil) = [] pi(tt) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p2 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, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r141, r142 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: top#(ok(X)) -> top#(active(X)) and R consists of: r1: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r2: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r3: U12(ok(X)) -> ok(U12(X)) r4: isNeList(ok(X)) -> ok(isNeList(X)) r5: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r6: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r7: isList(ok(X)) -> ok(isList(X)) r8: U23(ok(X)) -> ok(U23(X)) r9: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r10: U32(ok(X)) -> ok(U32(X)) r11: isQid(ok(X)) -> ok(isQid(X)) r12: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r13: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r14: U43(ok(X)) -> ok(U43(X)) r15: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r16: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r17: U53(ok(X)) -> ok(U53(X)) r18: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r19: U62(ok(X)) -> ok(U62(X)) r20: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r21: U72(ok(X)) -> ok(U72(X)) r22: isNePal(ok(X)) -> ok(isNePal(X)) r23: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r24: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r25: isPal(ok(X)) -> ok(isPal(X)) r26: active(__(X1,X2)) -> __(active(X1),X2) r27: active(__(X1,X2)) -> __(X1,active(X2)) r28: active(U11(X1,X2)) -> U11(active(X1),X2) r29: active(U12(X)) -> U12(active(X)) r30: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r31: active(U22(X1,X2)) -> U22(active(X1),X2) r32: active(U23(X)) -> U23(active(X)) r33: active(U31(X1,X2)) -> U31(active(X1),X2) r34: active(U32(X)) -> U32(active(X)) r35: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r36: active(U42(X1,X2)) -> U42(active(X1),X2) r37: active(U43(X)) -> U43(active(X)) r38: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r39: active(U52(X1,X2)) -> U52(active(X1),X2) r40: active(U53(X)) -> U53(active(X)) r41: active(U61(X1,X2)) -> U61(active(X1),X2) r42: active(U62(X)) -> U62(active(X)) r43: active(U71(X1,X2)) -> U71(active(X1),X2) r44: active(U72(X)) -> U72(active(X)) r45: active(and(X1,X2)) -> and(active(X1),X2) r46: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r47: proper(nil()) -> ok(nil()) r48: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r49: proper(tt()) -> ok(tt()) r50: proper(U12(X)) -> U12(proper(X)) r51: proper(isNeList(X)) -> isNeList(proper(X)) r52: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r53: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r54: proper(isList(X)) -> isList(proper(X)) r55: proper(U23(X)) -> U23(proper(X)) r56: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r57: proper(U32(X)) -> U32(proper(X)) r58: proper(isQid(X)) -> isQid(proper(X)) r59: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r60: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r61: proper(U43(X)) -> U43(proper(X)) r62: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r63: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r64: proper(U53(X)) -> U53(proper(X)) r65: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r66: proper(U62(X)) -> U62(proper(X)) r67: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r68: proper(U72(X)) -> U72(proper(X)) r69: proper(isNePal(X)) -> isNePal(proper(X)) r70: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r71: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r72: proper(isPal(X)) -> isPal(proper(X)) r73: proper(a()) -> ok(a()) r74: proper(e()) -> ok(e()) r75: proper(i()) -> ok(i()) r76: proper(o()) -> ok(o()) r77: proper(u()) -> ok(u()) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: top#(ok(X)) -> top#(active(X)) and R consists of: r1: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r2: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r3: U12(ok(X)) -> ok(U12(X)) r4: isNeList(ok(X)) -> ok(isNeList(X)) r5: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r6: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r7: isList(ok(X)) -> ok(isList(X)) r8: U23(ok(X)) -> ok(U23(X)) r9: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r10: U32(ok(X)) -> ok(U32(X)) r11: isQid(ok(X)) -> ok(isQid(X)) r12: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r13: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r14: U43(ok(X)) -> ok(U43(X)) r15: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r16: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r17: U53(ok(X)) -> ok(U53(X)) r18: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r19: U62(ok(X)) -> ok(U62(X)) r20: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r21: U72(ok(X)) -> ok(U72(X)) r22: isNePal(ok(X)) -> ok(isNePal(X)) r23: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r24: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r25: isPal(ok(X)) -> ok(isPal(X)) r26: active(__(X1,X2)) -> __(active(X1),X2) r27: active(__(X1,X2)) -> __(X1,active(X2)) r28: active(U11(X1,X2)) -> U11(active(X1),X2) r29: active(U12(X)) -> U12(active(X)) r30: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r31: active(U22(X1,X2)) -> U22(active(X1),X2) r32: active(U23(X)) -> U23(active(X)) r33: active(U31(X1,X2)) -> U31(active(X1),X2) r34: active(U32(X)) -> U32(active(X)) r35: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r36: active(U42(X1,X2)) -> U42(active(X1),X2) r37: active(U43(X)) -> U43(active(X)) r38: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r39: active(U52(X1,X2)) -> U52(active(X1),X2) r40: active(U53(X)) -> U53(active(X)) r41: active(U61(X1,X2)) -> U61(active(X1),X2) r42: active(U62(X)) -> U62(active(X)) r43: active(U71(X1,X2)) -> U71(active(X1),X2) r44: active(U72(X)) -> U72(active(X)) r45: active(and(X1,X2)) -> and(active(X1),X2) r46: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r47: proper(nil()) -> ok(nil()) r48: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r49: proper(tt()) -> ok(tt()) r50: proper(U12(X)) -> U12(proper(X)) r51: proper(isNeList(X)) -> isNeList(proper(X)) r52: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r53: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r54: proper(isList(X)) -> isList(proper(X)) r55: proper(U23(X)) -> U23(proper(X)) r56: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r57: proper(U32(X)) -> U32(proper(X)) r58: proper(isQid(X)) -> isQid(proper(X)) r59: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r60: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r61: proper(U43(X)) -> U43(proper(X)) r62: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r63: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r64: proper(U53(X)) -> U53(proper(X)) r65: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r66: proper(U62(X)) -> U62(proper(X)) r67: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r68: proper(U72(X)) -> U72(proper(X)) r69: proper(isNePal(X)) -> isNePal(proper(X)) r70: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r71: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r72: proper(isPal(X)) -> isPal(proper(X)) r73: proper(a()) -> ok(a()) r74: proper(e()) -> ok(e()) r75: proper(i()) -> ok(i()) r76: proper(o()) -> ok(o()) r77: proper(u()) -> ok(u()) The set of usable rules consists of r1, r2, r3, r5, r6, r8, r9, r10, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r23, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45 Take the reduction pair: lexicographic path order with precedence: precedence: and > U11 > U72 > active > U71 > U62 > U61 > U53 > U52 > U51 > U43 > U42 > U41 > U31 > U23 > U21 > ok > U32 > U22 > U12 > __ > top# argument filter: pi(top#) = [1] pi(ok) = [1] pi(active) = 1 pi(__) = 2 pi(U11) = [2] pi(U12) = 1 pi(U21) = [2] pi(U22) = 1 pi(U23) = 1 pi(U31) = 2 pi(U32) = 1 pi(U41) = 3 pi(U42) = 2 pi(U43) = 1 pi(U51) = 3 pi(U52) = 2 pi(U53) = 1 pi(U61) = [2] pi(U62) = 1 pi(U71) = 2 pi(U72) = 1 pi(and) = 1 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: active#(and(X1,X2)) -> active#(X1) p2: active#(U72(X)) -> active#(X) p3: active#(U71(X1,X2)) -> active#(X1) p4: active#(U62(X)) -> active#(X) p5: active#(U61(X1,X2)) -> active#(X1) p6: active#(U53(X)) -> active#(X) p7: active#(U52(X1,X2)) -> active#(X1) p8: active#(U51(X1,X2,X3)) -> active#(X1) p9: active#(U43(X)) -> active#(X) p10: active#(U42(X1,X2)) -> active#(X1) p11: active#(U41(X1,X2,X3)) -> active#(X1) p12: active#(U32(X)) -> active#(X) p13: active#(U31(X1,X2)) -> active#(X1) p14: active#(U23(X)) -> active#(X) p15: active#(U22(X1,X2)) -> active#(X1) p16: active#(U21(X1,X2,X3)) -> active#(X1) p17: active#(U12(X)) -> active#(X) p18: active#(U11(X1,X2)) -> active#(X1) p19: active#(__(X1,X2)) -> active#(X2) p20: active#(__(X1,X2)) -> active#(X1) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: active# > __ > U11 > U12 > U21 > U22 > U61 > U23 > U31 > U32 > U41 > U42 > U43 > U51 > U52 > U71 > U53 > U62 > U72 > and argument filter: pi(active#) = 1 pi(and) = [1, 2] pi(U72) = [1] pi(U71) = 1 pi(U62) = [1] pi(U61) = [1, 2] pi(U53) = [1] pi(U52) = [1, 2] pi(U51) = [1, 2, 3] pi(U43) = [1] pi(U42) = [1, 2] pi(U41) = [1, 2, 3] pi(U32) = [1] pi(U31) = [1, 2] pi(U23) = [1] pi(U22) = [1, 2] pi(U21) = [1, 2, 3] pi(U12) = [1] pi(U11) = [1, 2] pi(__) = [1, 2] The next rules are strictly ordered: p1, p2, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U71(X1,X2)) -> active#(X1) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U71(X1,X2)) -> active#(X1) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U71 > active# argument filter: pi(active#) = [1] pi(U71) = [1] 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: proper#(isPal(X)) -> proper#(X) p2: proper#(isPalListKind(X)) -> proper#(X) p3: proper#(and(X1,X2)) -> proper#(X2) p4: proper#(and(X1,X2)) -> proper#(X1) p5: proper#(isNePal(X)) -> proper#(X) p6: proper#(U72(X)) -> proper#(X) p7: proper#(U71(X1,X2)) -> proper#(X2) p8: proper#(U71(X1,X2)) -> proper#(X1) p9: proper#(U62(X)) -> proper#(X) p10: proper#(U61(X1,X2)) -> proper#(X2) p11: proper#(U61(X1,X2)) -> proper#(X1) p12: proper#(U53(X)) -> proper#(X) p13: proper#(U52(X1,X2)) -> proper#(X2) p14: proper#(U52(X1,X2)) -> proper#(X1) p15: proper#(U51(X1,X2,X3)) -> proper#(X3) p16: proper#(U51(X1,X2,X3)) -> proper#(X2) p17: proper#(U51(X1,X2,X3)) -> proper#(X1) p18: proper#(U43(X)) -> proper#(X) p19: proper#(U42(X1,X2)) -> proper#(X2) p20: proper#(U42(X1,X2)) -> proper#(X1) p21: proper#(U41(X1,X2,X3)) -> proper#(X3) p22: proper#(U41(X1,X2,X3)) -> proper#(X2) p23: proper#(U41(X1,X2,X3)) -> proper#(X1) p24: proper#(isQid(X)) -> proper#(X) p25: proper#(U32(X)) -> proper#(X) p26: proper#(U31(X1,X2)) -> proper#(X2) p27: proper#(U31(X1,X2)) -> proper#(X1) p28: proper#(U23(X)) -> proper#(X) p29: proper#(isList(X)) -> proper#(X) p30: proper#(U22(X1,X2)) -> proper#(X2) p31: proper#(U22(X1,X2)) -> proper#(X1) p32: proper#(U21(X1,X2,X3)) -> proper#(X3) p33: proper#(U21(X1,X2,X3)) -> proper#(X2) p34: proper#(U21(X1,X2,X3)) -> proper#(X1) p35: proper#(isNeList(X)) -> proper#(X) p36: proper#(U12(X)) -> proper#(X) p37: proper#(U11(X1,X2)) -> proper#(X2) p38: proper#(U11(X1,X2)) -> proper#(X1) p39: proper#(__(X1,X2)) -> proper#(X2) p40: proper#(__(X1,X2)) -> proper#(X1) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: proper# > __ > U11 > U12 > isNeList > U21 > U22 > isList > U23 > U31 > U32 > isQid > U41 > U42 > U43 > U51 > U52 > U53 > U61 > U62 > U71 > U72 > isNePal > and > isPalListKind > isPal argument filter: pi(proper#) = 1 pi(isPal) = 1 pi(isPalListKind) = [1] pi(and) = [1, 2] pi(isNePal) = 1 pi(U72) = [1] pi(U71) = [1, 2] pi(U62) = [1] pi(U61) = [1, 2] pi(U53) = [1] pi(U52) = [1, 2] pi(U51) = [1, 2, 3] pi(U43) = [1] pi(U42) = [1, 2] pi(U41) = [1, 2, 3] pi(isQid) = [1] pi(U32) = [1] pi(U31) = [1, 2] pi(U23) = [1] pi(isList) = [1] pi(U22) = [1, 2] pi(U21) = [1, 2, 3] pi(isNeList) = [1] pi(U12) = [1] pi(U11) = [1, 2] pi(__) = [1, 2] The next rules are strictly ordered: p2, p3, p4, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(isPal(X)) -> proper#(X) p2: proper#(isNePal(X)) -> proper#(X) and R consists of: (no rules) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(isPal(X)) -> proper#(X) p2: proper#(isNePal(X)) -> proper#(X) and R consists of: (no rules) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: proper# > isNePal > isPal argument filter: pi(proper#) = 1 pi(isPal) = [1] pi(isNePal) = [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: __#(mark(X1),X2) -> __#(X1,X2) p2: __#(ok(X1),ok(X2)) -> __#(X1,X2) p3: __#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: __# > ok > mark argument filter: pi(__#) = 2 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p2, p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: __#(mark(X1),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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: __#(mark(X1),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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > __# argument filter: pi(__#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U12#(mark(X)) -> U12#(X) p2: U12#(ok(X)) -> U12#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U12# > ok > mark argument filter: pi(U12#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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#(ok(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: ok > isNeList# argument filter: pi(isNeList#) = [1] pi(ok) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U22#(mark(X1),X2) -> U22#(X1,X2) p2: U22#(ok(X1),ok(X2)) -> U22#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U22# > ok > mark argument filter: pi(U22#) = 2 pi(mark) = [] pi(ok) = [1] 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: U22#(mark(X1),X2) -> U22#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U22#(mark(X1),X2) -> U22#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U22# argument filter: pi(U22#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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#(ok(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: ok > isList# argument filter: pi(isList#) = [1] pi(ok) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U23#(mark(X)) -> U23#(X) p2: U23#(ok(X)) -> U23#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U23# > ok > mark argument filter: pi(U23#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U32#(mark(X)) -> U32#(X) p2: U32#(ok(X)) -> U32#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U32# > ok > mark argument filter: pi(U32#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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#(ok(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: ok > isQid# argument filter: pi(isQid#) = [1] pi(ok) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U42#(mark(X1),X2) -> U42#(X1,X2) p2: U42#(ok(X1),ok(X2)) -> U42#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U42# > ok > mark argument filter: pi(U42#) = 2 pi(mark) = [] pi(ok) = [1] 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: U42#(mark(X1),X2) -> U42#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U42#(mark(X1),X2) -> U42#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U42# argument filter: pi(U42#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U43#(mark(X)) -> U43#(X) p2: U43#(ok(X)) -> U43#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U43# > ok > mark argument filter: pi(U43#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U52#(mark(X1),X2) -> U52#(X1,X2) p2: U52#(ok(X1),ok(X2)) -> U52#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U52# > ok > mark argument filter: pi(U52#) = 2 pi(mark) = [] pi(ok) = [1] 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: U52#(mark(X1),X2) -> U52#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U52#(mark(X1),X2) -> U52#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U52# argument filter: pi(U52#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U53#(mark(X)) -> U53#(X) p2: U53#(ok(X)) -> U53#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U53# > ok > mark argument filter: pi(U53#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U62#(mark(X)) -> U62#(X) p2: U62#(ok(X)) -> U62#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U62# > ok > mark argument filter: pi(U62#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U72#(mark(X)) -> U72#(X) p2: U72#(ok(X)) -> U72#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: U72# > ok > mark argument filter: pi(U72#) = 1 pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: p1, p2 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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#(ok(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: ok > isNePal# argument filter: pi(isNePal#) = [1] pi(ok) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U11#(mark(X1),X2) -> U11#(X1,X2) p2: U11#(ok(X1),ok(X2)) -> U11#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U11# > ok > mark argument filter: pi(U11#) = 2 pi(mark) = [] pi(ok) = [1] 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: U11#(mark(X1),X2) -> U11#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U11#(mark(X1),X2) -> U11#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U11# argument filter: pi(U11#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: isPalListKind#(ok(X)) -> isPalListKind#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: ok > isPalListKind# argument filter: pi(isPalListKind#) = [1] pi(ok) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U21#(mark(X1),X2,X3) -> U21#(X1,X2,X3) p2: U21#(ok(X1),ok(X2),ok(X3)) -> U21#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U21# > ok > mark argument filter: pi(U21#) = 3 pi(mark) = [] pi(ok) = [1] 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: U21#(mark(X1),X2,X3) -> U21#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U21#(mark(X1),X2,X3) -> U21#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U21# > mark argument filter: pi(U21#) = [1] pi(mark) = [1] 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: and#(mark(X1),X2) -> and#(X1,X2) p2: and#(ok(X1),ok(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: and# > ok > mark argument filter: pi(and#) = 2 pi(mark) = [] pi(ok) = [1] 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: and#(mark(X1),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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: and#(mark(X1),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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > and# argument filter: pi(and#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U31#(mark(X1),X2) -> U31#(X1,X2) p2: U31#(ok(X1),ok(X2)) -> U31#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U31# > ok > mark argument filter: pi(U31#) = 2 pi(mark) = [] pi(ok) = [1] 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: U31#(mark(X1),X2) -> U31#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U31#(mark(X1),X2) -> U31#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U31# argument filter: pi(U31#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3) p2: U41#(ok(X1),ok(X2),ok(X3)) -> U41#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U41# > ok > mark argument filter: pi(U41#) = 3 pi(mark) = [] pi(ok) = [1] 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: U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U41#(mark(X1),X2,X3) -> U41#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U41# > mark argument filter: pi(U41#) = [1] pi(mark) = [1] 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: U51#(mark(X1),X2,X3) -> U51#(X1,X2,X3) p2: U51#(ok(X1),ok(X2),ok(X3)) -> U51#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U51# > ok > mark argument filter: pi(U51#) = 3 pi(mark) = [] pi(ok) = [1] 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: U51#(mark(X1),X2,X3) -> U51#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U51#(mark(X1),X2,X3) -> U51#(X1,X2,X3) 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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U51# > mark argument filter: pi(U51#) = [1] pi(mark) = [1] 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: U61#(mark(X1),X2) -> U61#(X1,X2) p2: U61#(ok(X1),ok(X2)) -> U61#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U61# > ok > mark argument filter: pi(U61#) = 2 pi(mark) = [] pi(ok) = [1] 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: U61#(mark(X1),X2) -> U61#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U61#(mark(X1),X2) -> U61#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U61# argument filter: pi(U61#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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#(ok(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: ok > isPal# argument filter: pi(isPal#) = [1] pi(ok) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 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: U71#(mark(X1),X2) -> U71#(X1,X2) p2: U71#(ok(X1),ok(X2)) -> U71#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic path order with precedence: precedence: U71# > ok > mark argument filter: pi(U71#) = 2 pi(mark) = [] pi(ok) = [1] 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: U71#(mark(X1),X2) -> U71#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U71#(mark(X1),X2) -> U71#(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(U11(tt(),V)) -> mark(U12(isNeList(V))) r5: active(U12(tt())) -> mark(tt()) r6: active(U21(tt(),V1,V2)) -> mark(U22(isList(V1),V2)) r7: active(U22(tt(),V2)) -> mark(U23(isList(V2))) r8: active(U23(tt())) -> mark(tt()) r9: active(U31(tt(),V)) -> mark(U32(isQid(V))) r10: active(U32(tt())) -> mark(tt()) r11: active(U41(tt(),V1,V2)) -> mark(U42(isList(V1),V2)) r12: active(U42(tt(),V2)) -> mark(U43(isNeList(V2))) r13: active(U43(tt())) -> mark(tt()) r14: active(U51(tt(),V1,V2)) -> mark(U52(isNeList(V1),V2)) r15: active(U52(tt(),V2)) -> mark(U53(isList(V2))) r16: active(U53(tt())) -> mark(tt()) r17: active(U61(tt(),V)) -> mark(U62(isQid(V))) r18: active(U62(tt())) -> mark(tt()) r19: active(U71(tt(),V)) -> mark(U72(isNePal(V))) r20: active(U72(tt())) -> mark(tt()) r21: active(and(tt(),X)) -> mark(X) r22: active(isList(V)) -> mark(U11(isPalListKind(V),V)) r23: active(isList(nil())) -> mark(tt()) r24: active(isList(__(V1,V2))) -> mark(U21(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r25: active(isNeList(V)) -> mark(U31(isPalListKind(V),V)) r26: active(isNeList(__(V1,V2))) -> mark(U41(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r27: active(isNeList(__(V1,V2))) -> mark(U51(and(isPalListKind(V1),isPalListKind(V2)),V1,V2)) r28: active(isNePal(V)) -> mark(U61(isPalListKind(V),V)) r29: active(isNePal(__(I,__(P,I)))) -> mark(and(and(isQid(I),isPalListKind(I)),and(isPal(P),isPalListKind(P)))) r30: active(isPal(V)) -> mark(U71(isPalListKind(V),V)) r31: active(isPal(nil())) -> mark(tt()) r32: active(isPalListKind(a())) -> mark(tt()) r33: active(isPalListKind(e())) -> mark(tt()) r34: active(isPalListKind(i())) -> mark(tt()) r35: active(isPalListKind(nil())) -> mark(tt()) r36: active(isPalListKind(o())) -> mark(tt()) r37: active(isPalListKind(u())) -> mark(tt()) r38: active(isPalListKind(__(V1,V2))) -> mark(and(isPalListKind(V1),isPalListKind(V2))) r39: active(isQid(a())) -> mark(tt()) r40: active(isQid(e())) -> mark(tt()) r41: active(isQid(i())) -> mark(tt()) r42: active(isQid(o())) -> mark(tt()) r43: active(isQid(u())) -> mark(tt()) r44: active(__(X1,X2)) -> __(active(X1),X2) r45: active(__(X1,X2)) -> __(X1,active(X2)) r46: active(U11(X1,X2)) -> U11(active(X1),X2) r47: active(U12(X)) -> U12(active(X)) r48: active(U21(X1,X2,X3)) -> U21(active(X1),X2,X3) r49: active(U22(X1,X2)) -> U22(active(X1),X2) r50: active(U23(X)) -> U23(active(X)) r51: active(U31(X1,X2)) -> U31(active(X1),X2) r52: active(U32(X)) -> U32(active(X)) r53: active(U41(X1,X2,X3)) -> U41(active(X1),X2,X3) r54: active(U42(X1,X2)) -> U42(active(X1),X2) r55: active(U43(X)) -> U43(active(X)) r56: active(U51(X1,X2,X3)) -> U51(active(X1),X2,X3) r57: active(U52(X1,X2)) -> U52(active(X1),X2) r58: active(U53(X)) -> U53(active(X)) r59: active(U61(X1,X2)) -> U61(active(X1),X2) r60: active(U62(X)) -> U62(active(X)) r61: active(U71(X1,X2)) -> U71(active(X1),X2) r62: active(U72(X)) -> U72(active(X)) r63: active(and(X1,X2)) -> and(active(X1),X2) r64: __(mark(X1),X2) -> mark(__(X1,X2)) r65: __(X1,mark(X2)) -> mark(__(X1,X2)) r66: U11(mark(X1),X2) -> mark(U11(X1,X2)) r67: U12(mark(X)) -> mark(U12(X)) r68: U21(mark(X1),X2,X3) -> mark(U21(X1,X2,X3)) r69: U22(mark(X1),X2) -> mark(U22(X1,X2)) r70: U23(mark(X)) -> mark(U23(X)) r71: U31(mark(X1),X2) -> mark(U31(X1,X2)) r72: U32(mark(X)) -> mark(U32(X)) r73: U41(mark(X1),X2,X3) -> mark(U41(X1,X2,X3)) r74: U42(mark(X1),X2) -> mark(U42(X1,X2)) r75: U43(mark(X)) -> mark(U43(X)) r76: U51(mark(X1),X2,X3) -> mark(U51(X1,X2,X3)) r77: U52(mark(X1),X2) -> mark(U52(X1,X2)) r78: U53(mark(X)) -> mark(U53(X)) r79: U61(mark(X1),X2) -> mark(U61(X1,X2)) r80: U62(mark(X)) -> mark(U62(X)) r81: U71(mark(X1),X2) -> mark(U71(X1,X2)) r82: U72(mark(X)) -> mark(U72(X)) r83: and(mark(X1),X2) -> mark(and(X1,X2)) r84: proper(__(X1,X2)) -> __(proper(X1),proper(X2)) r85: proper(nil()) -> ok(nil()) r86: proper(U11(X1,X2)) -> U11(proper(X1),proper(X2)) r87: proper(tt()) -> ok(tt()) r88: proper(U12(X)) -> U12(proper(X)) r89: proper(isNeList(X)) -> isNeList(proper(X)) r90: proper(U21(X1,X2,X3)) -> U21(proper(X1),proper(X2),proper(X3)) r91: proper(U22(X1,X2)) -> U22(proper(X1),proper(X2)) r92: proper(isList(X)) -> isList(proper(X)) r93: proper(U23(X)) -> U23(proper(X)) r94: proper(U31(X1,X2)) -> U31(proper(X1),proper(X2)) r95: proper(U32(X)) -> U32(proper(X)) r96: proper(isQid(X)) -> isQid(proper(X)) r97: proper(U41(X1,X2,X3)) -> U41(proper(X1),proper(X2),proper(X3)) r98: proper(U42(X1,X2)) -> U42(proper(X1),proper(X2)) r99: proper(U43(X)) -> U43(proper(X)) r100: proper(U51(X1,X2,X3)) -> U51(proper(X1),proper(X2),proper(X3)) r101: proper(U52(X1,X2)) -> U52(proper(X1),proper(X2)) r102: proper(U53(X)) -> U53(proper(X)) r103: proper(U61(X1,X2)) -> U61(proper(X1),proper(X2)) r104: proper(U62(X)) -> U62(proper(X)) r105: proper(U71(X1,X2)) -> U71(proper(X1),proper(X2)) r106: proper(U72(X)) -> U72(proper(X)) r107: proper(isNePal(X)) -> isNePal(proper(X)) r108: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) r109: proper(isPalListKind(X)) -> isPalListKind(proper(X)) r110: proper(isPal(X)) -> isPal(proper(X)) r111: proper(a()) -> ok(a()) r112: proper(e()) -> ok(e()) r113: proper(i()) -> ok(i()) r114: proper(o()) -> ok(o()) r115: proper(u()) -> ok(u()) r116: __(ok(X1),ok(X2)) -> ok(__(X1,X2)) r117: U11(ok(X1),ok(X2)) -> ok(U11(X1,X2)) r118: U12(ok(X)) -> ok(U12(X)) r119: isNeList(ok(X)) -> ok(isNeList(X)) r120: U21(ok(X1),ok(X2),ok(X3)) -> ok(U21(X1,X2,X3)) r121: U22(ok(X1),ok(X2)) -> ok(U22(X1,X2)) r122: isList(ok(X)) -> ok(isList(X)) r123: U23(ok(X)) -> ok(U23(X)) r124: U31(ok(X1),ok(X2)) -> ok(U31(X1,X2)) r125: U32(ok(X)) -> ok(U32(X)) r126: isQid(ok(X)) -> ok(isQid(X)) r127: U41(ok(X1),ok(X2),ok(X3)) -> ok(U41(X1,X2,X3)) r128: U42(ok(X1),ok(X2)) -> ok(U42(X1,X2)) r129: U43(ok(X)) -> ok(U43(X)) r130: U51(ok(X1),ok(X2),ok(X3)) -> ok(U51(X1,X2,X3)) r131: U52(ok(X1),ok(X2)) -> ok(U52(X1,X2)) r132: U53(ok(X)) -> ok(U53(X)) r133: U61(ok(X1),ok(X2)) -> ok(U61(X1,X2)) r134: U62(ok(X)) -> ok(U62(X)) r135: U71(ok(X1),ok(X2)) -> ok(U71(X1,X2)) r136: U72(ok(X)) -> ok(U72(X)) r137: isNePal(ok(X)) -> ok(isNePal(X)) r138: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) r139: isPalListKind(ok(X)) -> ok(isPalListKind(X)) r140: isPal(ok(X)) -> ok(isPal(X)) r141: top(mark(X)) -> top(proper(X)) r142: top(ok(X)) -> top(active(X)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic path order with precedence: precedence: mark > U71# argument filter: pi(U71#) = [1, 2] pi(mark) = [1] The next rules are strictly ordered: p1 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, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142 We remove them from the problem. Then no dependency pair remains.