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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: top#_A(x1) = x1 ok_A(x1) = x1 active_A(x1) = x1 mark_A(x1) = x1 + (0,3) proper_A(x1) = x1 ___A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (28,38) U11_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (6,6) U12_A(x1) = x1 + (0,3) U21_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (29,9) U22_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (9,48) U23_A(x1) = x1 + (1,87) U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (4,80) U32_A(x1) = x1 + (1,2) U41_A(x1,x2,x3) = x1 + x2 + ((1,0),(0,0)) x3 + (15,1) U42_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (7,42) U43_A(x1) = x1 + (1,2) U51_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + ((1,0),(1,0)) x3 + (29,4) U52_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (9,6) U53_A(x1) = x1 + (1,44) U61_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (3,75) U62_A(x1) = x1 + (1,2) U71_A(x1,x2) = x1 + x2 + (6,2) U72_A(x1) = x1 + (1,1) and_A(x1,x2) = x1 + x2 + (0,18) isNeList_A(x1) = x1 + (5,85) isList_A(x1) = ((1,0),(0,0)) x1 + (7,43) isQid_A(x1) = ((1,0),(1,1)) x1 + (2,1) isNePal_A(x1) = ((1,0),(0,0)) x1 + (4,81) isPalListKind_A(x1) = ((0,0),(1,0)) x1 + (0,6) isPal_A(x1) = ((1,0),(0,0)) x1 + (55,10) nil_A() = (84,87) tt_A() = (0,86) a_A() = (84,5) e_A() = (84,1) i_A() = (84,1) o_A() = (84,87) u_A() = (84,1) precedence: i > nil > isPal > a = e > ok = active = mark = __ = U11 = U12 = U21 = U22 = U23 = U31 = U32 = U41 = U42 = U43 = U51 = U52 = U53 = U61 = U62 = U71 = U72 = and = isNeList = isList = isQid = isNePal = isPalListKind = tt = o = u > proper > top# partial status: pi(top#) = [1] pi(ok) = [] pi(active) = [] pi(mark) = [] pi(proper) = [1] pi(__) = [] pi(U11) = [] pi(U12) = [] pi(U21) = [] pi(U22) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(and) = [] pi(isNeList) = [] pi(isList) = [] pi(isQid) = [] pi(isNePal) = [] pi(isPalListKind) = [] pi(isPal) = [] pi(nil) = [] pi(tt) = [] pi(a) = [] pi(e) = [] pi(i) = [] pi(o) = [] pi(u) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: top#(ok(X)) -> top#(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: {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: 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, 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: top#_A(x1) = x1 + (1,2) ok_A(x1) = ((1,0),(1,0)) x1 + (20,20) active_A(x1) = ((1,0),(1,0)) x1 + (4,19) ___A(x1,x2) = ((1,0),(1,0)) x1 + (0,15) mark_A(x1) = (0,11) U11_A(x1,x2) = ((1,0),(1,0)) x2 + (0,23) U12_A(x1) = x1 U21_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (0,12) U22_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (5,10) U23_A(x1) = x1 U31_A(x1,x2) = ((1,0),(1,0)) x2 + (4,5) U32_A(x1) = ((1,0),(1,0)) x1 + (21,36) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (5,16) U42_A(x1,x2) = ((1,0),(1,0)) x2 + (0,18) U43_A(x1) = x1 + (1,1) U51_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (1,14) U52_A(x1,x2) = ((1,0),(1,0)) x2 + (0,16) U53_A(x1) = ((1,0),(1,0)) x1 + (0,14) U61_A(x1,x2) = ((1,0),(1,1)) x2 + (0,28) U62_A(x1) = ((1,0),(1,0)) x1 + (7,21) U71_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (22,23) U72_A(x1) = ((1,0),(1,0)) x1 + (21,22) and_A(x1,x2) = ((1,0),(1,0)) x1 + (0,14) isNeList_A(x1) = ((1,0),(1,0)) x1 + (0,6) isList_A(x1) = x1 + (3,4) isQid_A(x1) = ((1,0),(1,1)) x1 + (6,0) isNePal_A(x1) = ((1,0),(1,1)) x1 + (0,6) isPalListKind_A(x1) = ((1,0),(1,1)) x1 + (6,7) isPal_A(x1) = ((1,0),(1,1)) x1 + (0,6) nil_A() = (0,12) tt_A() = (0,9) a_A() = (1,4) e_A() = (0,5) i_A() = (0,0) o_A() = (0,5) u_A() = (0,1) precedence: U51 > isList > active = U21 = U31 = U41 = U43 = U72 = and = tt > U53 > U11 > top# = U32 = U62 = isNeList > U71 = isPal > ok = __ = mark = U12 = U22 = U23 = U42 = U52 = U61 = isQid = isNePal = isPalListKind = nil = a = e = i = o = u partial status: pi(top#) = [1] pi(ok) = [] pi(active) = [] pi(__) = [] pi(mark) = [] pi(U11) = [] pi(U12) = [] pi(U21) = [] pi(U22) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(and) = [] pi(isNeList) = [] pi(isList) = [1] pi(isQid) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(1,1)) x1 + (1,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + (2,3) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,3) U53_A(x1) = x1 + (2,1) U52_A(x1,x2) = x1 + x2 + (2,1) U51_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U43_A(x1) = x1 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U32_A(x1) = x1 + (2,1) U31_A(x1,x2) = x1 + (2,1) U23_A(x1) = x1 + (2,1) U22_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (2,3) U12_A(x1) = x1 + (2,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,1) ___A(x1,x2) = x1 + x2 + (2,1) precedence: U31 > U22 > U51 > U23 > U52 > U41 > U53 > U43 > U32 > U71 = U62 = U61 > active# > and = U72 = U42 = U21 = U12 = U11 = __ partial status: pi(active#) = [1] pi(and) = [1] pi(U72) = [1] pi(U71) = [1] pi(U62) = [] pi(U61) = [1] pi(U53) = [1] pi(U52) = [1, 2] pi(U51) = [1, 2] pi(U43) = [1] pi(U42) = [] pi(U41) = [1, 2] pi(U32) = [1] pi(U31) = [1] pi(U23) = [1] pi(U22) = [] pi(U21) = [1, 2] pi(U12) = [1] pi(U11) = [1] pi(__) = [1, 2] The next rules are strictly ordered: p14 We remove them from the problem. -- SCC decomposition. 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#(U22(X1,X2)) -> active#(X1) p15: active#(U21(X1,X2,X3)) -> active#(X1) p16: active#(U12(X)) -> active#(X) p17: active#(U11(X1,X2)) -> active#(X1) p18: active#(__(X1,X2)) -> active#(X2) p19: 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(X1,X2)) -> active#(X1) p2: active#(__(X1,X2)) -> active#(X1) p3: active#(__(X1,X2)) -> active#(X2) p4: active#(U11(X1,X2)) -> active#(X1) p5: active#(U12(X)) -> active#(X) p6: active#(U21(X1,X2,X3)) -> active#(X1) p7: active#(U22(X1,X2)) -> active#(X1) p8: active#(U31(X1,X2)) -> active#(X1) p9: active#(U32(X)) -> active#(X) p10: active#(U41(X1,X2,X3)) -> active#(X1) p11: active#(U42(X1,X2)) -> active#(X1) p12: active#(U43(X)) -> active#(X) p13: active#(U51(X1,X2,X3)) -> active#(X1) p14: active#(U52(X1,X2)) -> active#(X1) p15: active#(U53(X)) -> active#(X) p16: active#(U61(X1,X2)) -> active#(X1) p17: active#(U62(X)) -> active#(X) p18: active#(U71(X1,X2)) -> active#(X1) p19: active#(U72(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(0,0)) x1 + (2,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) ___A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,3) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U12_A(x1) = ((1,0),(1,0)) x1 + (3,1) U21_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + x3 + (3,3) U22_A(x1,x2) = x1 + x2 + (1,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + (3,1) U32_A(x1) = x1 + (3,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (3,3) U42_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U43_A(x1) = x1 + (3,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (3,1) U52_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,1) U53_A(x1) = ((1,0),(0,0)) x1 + (3,1) U61_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,1) U62_A(x1) = x1 + (3,1) U71_A(x1,x2) = x1 + (1,1) U72_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U32 > U53 > U21 = U22 = U61 > __ = U12 > active# = U51 > U52 > and = U11 > U31 = U41 = U42 = U43 > U62 = U71 = U72 partial status: pi(active#) = [] pi(and) = [1] pi(__) = [] pi(U11) = [1] pi(U12) = [] pi(U21) = [2] pi(U22) = [] pi(U31) = [1] pi(U32) = [] pi(U41) = [1, 3] pi(U42) = [2] pi(U43) = [1] pi(U51) = [3] pi(U52) = [2] pi(U53) = [] pi(U61) = [] pi(U62) = [1] pi(U71) = [1] pi(U72) = [] The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(X1,X2)) -> active#(X1) p2: active#(__(X1,X2)) -> active#(X1) p3: active#(__(X1,X2)) -> active#(X2) p4: active#(U11(X1,X2)) -> active#(X1) p5: active#(U12(X)) -> active#(X) p6: active#(U21(X1,X2,X3)) -> active#(X1) p7: active#(U22(X1,X2)) -> active#(X1) p8: active#(U31(X1,X2)) -> active#(X1) p9: active#(U32(X)) -> active#(X) p10: active#(U41(X1,X2,X3)) -> active#(X1) p11: active#(U42(X1,X2)) -> active#(X1) p12: active#(U51(X1,X2,X3)) -> active#(X1) p13: active#(U52(X1,X2)) -> active#(X1) p14: active#(U53(X)) -> active#(X) p15: active#(U61(X1,X2)) -> active#(X1) p16: active#(U62(X)) -> active#(X) p17: active#(U71(X1,X2)) -> active#(X1) p18: active#(U72(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(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#(U42(X1,X2)) -> active#(X1) p10: active#(U41(X1,X2,X3)) -> active#(X1) p11: active#(U32(X)) -> active#(X) p12: active#(U31(X1,X2)) -> active#(X1) p13: active#(U22(X1,X2)) -> active#(X1) p14: active#(U21(X1,X2,X3)) -> active#(X1) p15: active#(U12(X)) -> active#(X) p16: active#(U11(X1,X2)) -> active#(X1) p17: active#(__(X1,X2)) -> active#(X2) p18: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U72_A(x1) = ((1,0),(1,1)) x1 + (2,1) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,1) U62_A(x1) = ((1,0),(1,1)) x1 + (2,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U52_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (2,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U32_A(x1) = ((1,0),(1,1)) x1 + (2,1) U31_A(x1,x2) = x1 + x2 + (2,1) U22_A(x1,x2) = x1 + (2,3) U21_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U12_A(x1) = ((1,0),(1,1)) x1 + (2,1) U11_A(x1,x2) = x1 + (2,1) ___A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) precedence: U31 > active# = U52 = U32 = U22 = U11 > and = U51 = U42 = U21 > U62 = U61 = U53 = U41 = U12 > U72 = U71 = __ partial status: pi(active#) = [1] pi(and) = [1] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U61) = [1] pi(U53) = [1] pi(U52) = [1] pi(U51) = [1, 3] pi(U42) = [1, 2] pi(U41) = [1, 3] pi(U32) = [1] pi(U31) = [2] pi(U22) = [1] pi(U21) = [1] pi(U12) = [1] pi(U11) = [] pi(__) = [1, 2] The next rules are strictly ordered: p18 We remove them from the problem. -- SCC decomposition. 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#(U42(X1,X2)) -> active#(X1) p10: active#(U41(X1,X2,X3)) -> active#(X1) p11: active#(U32(X)) -> active#(X) p12: active#(U31(X1,X2)) -> active#(X1) p13: active#(U22(X1,X2)) -> active#(X1) p14: active#(U21(X1,X2,X3)) -> active#(X1) p15: active#(U12(X)) -> active#(X) p16: active#(U11(X1,X2)) -> active#(X1) p17: active#(__(X1,X2)) -> active#(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(X1,X2)) -> active#(X1) p2: active#(__(X1,X2)) -> active#(X2) p3: active#(U11(X1,X2)) -> active#(X1) p4: active#(U12(X)) -> active#(X) p5: active#(U21(X1,X2,X3)) -> active#(X1) p6: active#(U22(X1,X2)) -> active#(X1) p7: active#(U31(X1,X2)) -> active#(X1) p8: active#(U32(X)) -> active#(X) p9: active#(U41(X1,X2,X3)) -> active#(X1) p10: active#(U42(X1,X2)) -> active#(X1) p11: active#(U51(X1,X2,X3)) -> active#(X1) p12: active#(U52(X1,X2)) -> active#(X1) p13: active#(U53(X)) -> active#(X) p14: active#(U61(X1,X2)) -> active#(X1) p15: active#(U62(X)) -> active#(X) p16: active#(U71(X1,X2)) -> active#(X1) p17: active#(U72(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(0,0)) x1 + (2,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + (3,3) ___A(x1,x2) = x1 + x2 + (1,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U12_A(x1) = x1 + (1,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (3,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U32_A(x1) = x1 + (3,1) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (3,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,1) U51_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (3,3) U52_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,1) U53_A(x1) = ((1,0),(0,0)) x1 + (3,1) U61_A(x1,x2) = ((1,0),(0,0)) x1 + (1,1) U62_A(x1) = x1 + (2,2) U71_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,1) U72_A(x1) = x1 + (3,1) precedence: and = __ = U11 = U12 = U21 = U22 = U31 = U32 = U42 = U52 = U61 = U71 > active# = U41 = U51 = U53 = U62 = U72 partial status: pi(active#) = [] pi(and) = [] pi(__) = [] pi(U11) = [] pi(U12) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [] pi(U42) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [1] The next rules are strictly ordered: p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(X1,X2)) -> active#(X1) p2: active#(__(X1,X2)) -> active#(X2) p3: active#(U11(X1,X2)) -> active#(X1) p4: active#(U12(X)) -> active#(X) p5: active#(U21(X1,X2,X3)) -> active#(X1) p6: active#(U22(X1,X2)) -> active#(X1) p7: active#(U31(X1,X2)) -> active#(X1) p8: active#(U41(X1,X2,X3)) -> active#(X1) p9: active#(U42(X1,X2)) -> active#(X1) p10: active#(U51(X1,X2,X3)) -> active#(X1) p11: active#(U52(X1,X2)) -> active#(X1) p12: active#(U53(X)) -> active#(X) p13: active#(U61(X1,X2)) -> active#(X1) p14: active#(U62(X)) -> active#(X) p15: active#(U71(X1,X2)) -> active#(X1) p16: active#(U72(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(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#(U42(X1,X2)) -> active#(X1) p10: active#(U41(X1,X2,X3)) -> active#(X1) p11: active#(U31(X1,X2)) -> active#(X1) p12: active#(U22(X1,X2)) -> active#(X1) p13: active#(U21(X1,X2,X3)) -> active#(X1) p14: active#(U12(X)) -> active#(X) p15: active#(U11(X1,X2)) -> active#(X1) p16: active#(__(X1,X2)) -> active#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U72_A(x1) = ((1,0),(1,1)) x1 + (1,3) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U52_A(x1,x2) = x1 + x2 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + ((1,0),(1,1)) x3 + (2,3) U42_A(x1,x2) = x1 + x2 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U31_A(x1,x2) = x1 + x2 + (2,1) U22_A(x1,x2) = x1 + x2 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (2,1) U12_A(x1) = x1 + (2,3) U11_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (2,1) ___A(x1,x2) = x1 + x2 + (2,2) precedence: U71 = U22 > U53 > U41 > active# = U42 = U31 = __ > and = U72 = U62 = U51 > U21 > U61 = U52 = U12 = U11 partial status: pi(active#) = [1] pi(and) = [] pi(U72) = [1] pi(U71) = [1, 2] pi(U62) = [1] pi(U61) = [2] pi(U53) = [] pi(U52) = [1, 2] pi(U51) = [1, 3] pi(U42) = [1] pi(U41) = [1] pi(U31) = [1] pi(U22) = [1] pi(U21) = [1, 3] pi(U12) = [1] pi(U11) = [2] pi(__) = [2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U71(X1,X2)) -> active#(X1) p3: active#(U62(X)) -> active#(X) p4: active#(U61(X1,X2)) -> active#(X1) p5: active#(U53(X)) -> active#(X) p6: active#(U52(X1,X2)) -> active#(X1) p7: active#(U51(X1,X2,X3)) -> active#(X1) p8: active#(U42(X1,X2)) -> active#(X1) p9: active#(U41(X1,X2,X3)) -> active#(X1) p10: active#(U31(X1,X2)) -> active#(X1) p11: active#(U22(X1,X2)) -> active#(X1) p12: active#(U21(X1,X2,X3)) -> active#(X1) p13: active#(U12(X)) -> active#(X) p14: active#(U11(X1,X2)) -> active#(X1) p15: active#(__(X1,X2)) -> active#(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(__(X1,X2)) -> active#(X2) p3: active#(U11(X1,X2)) -> active#(X1) p4: active#(U12(X)) -> active#(X) p5: active#(U21(X1,X2,X3)) -> active#(X1) p6: active#(U22(X1,X2)) -> active#(X1) p7: active#(U31(X1,X2)) -> active#(X1) p8: active#(U41(X1,X2,X3)) -> active#(X1) p9: active#(U42(X1,X2)) -> active#(X1) p10: active#(U51(X1,X2,X3)) -> active#(X1) p11: active#(U52(X1,X2)) -> active#(X1) p12: active#(U53(X)) -> active#(X) p13: active#(U61(X1,X2)) -> active#(X1) p14: active#(U62(X)) -> active#(X) p15: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U72_A(x1) = x1 + (2,1) ___A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U11_A(x1,x2) = x1 + (2,1) U12_A(x1) = ((1,0),(1,1)) x1 + (2,3) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (2,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x3 + (2,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U51_A(x1,x2,x3) = x1 + (2,1) U52_A(x1,x2) = x1 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U61_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2) = x1 + (2,1) precedence: U51 > active# = U42 = U52 = U71 > U72 = __ = U53 > U11 = U31 > U22 > U61 > U12 = U21 = U41 = U62 partial status: pi(active#) = [1] pi(U72) = [1] pi(__) = [2] pi(U11) = [1] pi(U12) = [1] pi(U21) = [1, 3] pi(U22) = [1] pi(U31) = [1, 2] pi(U41) = [1] pi(U42) = [1] pi(U51) = [] pi(U52) = [1] pi(U53) = [1] pi(U61) = [1, 2] pi(U62) = [1] pi(U71) = [1] The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(__(X1,X2)) -> active#(X2) p3: active#(U11(X1,X2)) -> active#(X1) p4: active#(U12(X)) -> active#(X) p5: active#(U21(X1,X2,X3)) -> active#(X1) p6: active#(U22(X1,X2)) -> active#(X1) p7: active#(U31(X1,X2)) -> active#(X1) p8: active#(U41(X1,X2,X3)) -> active#(X1) p9: active#(U42(X1,X2)) -> active#(X1) p10: active#(U51(X1,X2,X3)) -> active#(X1) p11: active#(U52(X1,X2)) -> active#(X1) p12: active#(U53(X)) -> active#(X) p13: active#(U61(X1,X2)) -> active#(X1) p14: active#(U62(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U51(X1,X2,X3)) -> active#(X1) p7: active#(U42(X1,X2)) -> active#(X1) p8: active#(U41(X1,X2,X3)) -> active#(X1) p9: active#(U31(X1,X2)) -> active#(X1) p10: active#(U22(X1,X2)) -> active#(X1) p11: active#(U21(X1,X2,X3)) -> active#(X1) p12: active#(U12(X)) -> active#(X) p13: active#(U11(X1,X2)) -> active#(X1) p14: active#(__(X1,X2)) -> active#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U72_A(x1) = ((1,0),(1,1)) x1 + (2,1) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,3) U53_A(x1) = x1 + (2,1) U52_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + (2,3) U42_A(x1,x2) = x1 + x2 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) U22_A(x1,x2) = x1 + (2,1) U21_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + (2,1) U12_A(x1) = x1 + (2,1) U11_A(x1,x2) = x1 + (2,1) ___A(x1,x2) = x1 + x2 + (2,1) precedence: U12 > U21 > U22 > active# = U31 > U61 = U53 = U52 = U51 = U42 = U41 = U11 > U72 = U62 = __ partial status: pi(active#) = [1] pi(U72) = [] pi(U62) = [1] pi(U61) = [1] pi(U53) = [1] pi(U52) = [1, 2] pi(U51) = [1, 2] pi(U42) = [1, 2] pi(U41) = [1, 2] pi(U31) = [1, 2] pi(U22) = [1] pi(U21) = [1] pi(U12) = [1] pi(U11) = [1] pi(__) = [2] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U41(X1,X2,X3)) -> active#(X1) p8: active#(U31(X1,X2)) -> active#(X1) p9: active#(U22(X1,X2)) -> active#(X1) p10: active#(U21(X1,X2,X3)) -> active#(X1) p11: active#(U12(X)) -> active#(X) p12: active#(U11(X1,X2)) -> active#(X1) p13: active#(__(X1,X2)) -> active#(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(__(X1,X2)) -> active#(X2) p3: active#(U11(X1,X2)) -> active#(X1) p4: active#(U12(X)) -> active#(X) p5: active#(U21(X1,X2,X3)) -> active#(X1) p6: active#(U22(X1,X2)) -> active#(X1) p7: active#(U31(X1,X2)) -> active#(X1) p8: active#(U41(X1,X2,X3)) -> active#(X1) p9: active#(U42(X1,X2)) -> active#(X1) p10: active#(U52(X1,X2)) -> active#(X1) p11: active#(U53(X)) -> active#(X) p12: active#(U61(X1,X2)) -> active#(X1) p13: active#(U62(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (2,2) U72_A(x1) = ((1,0),(1,1)) x1 + (1,0) ___A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (1,1) U11_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (3,3) U12_A(x1) = ((1,0),(1,1)) x1 + (1,0) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + (3,0) U22_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (3,3) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (3,3) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (3,3) U42_A(x1,x2) = ((1,0),(0,0)) x1 + (3,1) U52_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) U53_A(x1) = x1 + (1,0) U61_A(x1,x2) = x1 + x2 + (1,0) U62_A(x1) = x1 + (1,0) precedence: active# = U42 = U52 = U53 > U72 = U31 = U41 > U11 = U61 > U12 = U21 = U22 > __ = U62 partial status: pi(active#) = [] pi(U72) = [] pi(__) = [1] pi(U11) = [2] pi(U12) = [1] pi(U21) = [2] pi(U22) = [2] pi(U31) = [] pi(U41) = [] pi(U42) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [2] pi(U62) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U11(X1,X2)) -> active#(X1) p3: active#(U12(X)) -> active#(X) p4: active#(U21(X1,X2,X3)) -> active#(X1) p5: active#(U22(X1,X2)) -> active#(X1) p6: active#(U31(X1,X2)) -> active#(X1) p7: active#(U41(X1,X2,X3)) -> active#(X1) p8: active#(U42(X1,X2)) -> active#(X1) p9: active#(U52(X1,X2)) -> active#(X1) p10: active#(U53(X)) -> active#(X) p11: active#(U61(X1,X2)) -> active#(X1) p12: active#(U62(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U41(X1,X2,X3)) -> active#(X1) p8: active#(U31(X1,X2)) -> active#(X1) p9: active#(U22(X1,X2)) -> active#(X1) p10: active#(U21(X1,X2,X3)) -> active#(X1) p11: active#(U12(X)) -> active#(X) p12: active#(U11(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U52_A(x1,x2) = x1 + x2 + (2,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x3 + (2,3) U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) U22_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (1,2) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,3) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) precedence: U22 > U52 = U31 > active# = U41 > U21 = U12 > U72 = U61 = U53 = U42 = U11 > U62 partial status: pi(active#) = [1] pi(U72) = [] pi(U62) = [] pi(U61) = [1, 2] pi(U53) = [1] pi(U52) = [1, 2] pi(U42) = [1, 2] pi(U41) = [1, 3] pi(U31) = [2] pi(U22) = [1, 2] pi(U21) = [] pi(U12) = [] pi(U11) = [2] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U41(X1,X2,X3)) -> active#(X1) p8: active#(U31(X1,X2)) -> active#(X1) p9: active#(U22(X1,X2)) -> active#(X1) p10: active#(U12(X)) -> active#(X) p11: active#(U11(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U11(X1,X2)) -> active#(X1) p3: active#(U12(X)) -> active#(X) p4: active#(U22(X1,X2)) -> active#(X1) p5: active#(U31(X1,X2)) -> active#(X1) p6: active#(U41(X1,X2,X3)) -> active#(X1) p7: active#(U42(X1,X2)) -> active#(X1) p8: active#(U52(X1,X2)) -> active#(X1) p9: active#(U53(X)) -> active#(X) p10: active#(U61(X1,X2)) -> active#(X1) p11: active#(U62(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(0,0)) x1 U72_A(x1) = ((1,0),(1,1)) x1 + (1,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + (1,1) U12_A(x1) = ((1,0),(1,1)) x1 + (1,1) U22_A(x1,x2) = x1 + x2 + (1,1) U31_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U41_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + x3 + (1,1) U42_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U52_A(x1,x2) = x1 + x2 + (1,1) U53_A(x1) = ((1,0),(0,0)) x1 + (1,1) U61_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U62_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U62 > active# = U41 = U42 = U52 = U61 > U11 = U12 = U53 > U72 = U22 = U31 partial status: pi(active#) = [] pi(U72) = [] pi(U11) = [1] pi(U12) = [1] pi(U22) = [2] pi(U31) = [2] pi(U41) = [] pi(U42) = [] pi(U52) = [1] pi(U53) = [] pi(U61) = [] pi(U62) = [] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U11(X1,X2)) -> active#(X1) p3: active#(U12(X)) -> active#(X) p4: active#(U22(X1,X2)) -> active#(X1) p5: active#(U31(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U52(X1,X2)) -> active#(X1) p8: active#(U53(X)) -> active#(X) p9: active#(U61(X1,X2)) -> active#(X1) p10: active#(U62(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U31(X1,X2)) -> active#(X1) p8: active#(U22(X1,X2)) -> active#(X1) p9: active#(U12(X)) -> active#(X) p10: active#(U11(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U72_A(x1) = x1 + (1,1) U62_A(x1) = ((1,0),(0,0)) x1 + (1,1) U61_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,1) U53_A(x1) = ((1,0),(1,1)) x1 + (3,1) U52_A(x1,x2) = x1 + x2 + (1,1) U42_A(x1,x2) = x1 + x2 + (1,3) U31_A(x1,x2) = ((1,0),(0,0)) x1 + (1,3) U22_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) U12_A(x1) = x1 + (2,3) U11_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) precedence: U12 > U61 > U11 > U22 > U62 = U53 > active# = U42 = U31 > U72 > U52 partial status: pi(active#) = [] pi(U72) = [] pi(U62) = [] pi(U61) = [] pi(U53) = [1] pi(U52) = [1, 2] pi(U42) = [1, 2] pi(U31) = [] pi(U22) = [] pi(U12) = [] pi(U11) = [2] The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U22(X1,X2)) -> active#(X1) p8: active#(U12(X)) -> active#(X) p9: active#(U11(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, p2, p3, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U72(X)) -> active#(X) p2: active#(U11(X1,X2)) -> active#(X1) p3: active#(U12(X)) -> active#(X) p4: active#(U22(X1,X2)) -> active#(X1) p5: active#(U42(X1,X2)) -> active#(X1) p6: active#(U52(X1,X2)) -> active#(X1) p7: active#(U53(X)) -> active#(X) p8: active#(U61(X1,X2)) -> active#(X1) p9: active#(U62(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U72_A(x1) = x1 + (2,1) U11_A(x1,x2) = x1 + x2 + (2,1) U12_A(x1) = ((1,0),(1,1)) x1 + (2,2) U22_A(x1,x2) = x1 + x2 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,3) U52_A(x1,x2) = x1 + x2 + (2,3) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U61_A(x1,x2) = x1 + x2 + (2,3) U62_A(x1) = x1 + (2,3) precedence: U61 > U52 > U12 = U62 > U11 > U53 > U72 > U22 > active# = U42 partial status: pi(active#) = [1] pi(U72) = [] pi(U11) = [] pi(U12) = [1] pi(U22) = [] pi(U42) = [1, 2] pi(U52) = [1, 2] pi(U53) = [] pi(U61) = [] pi(U62) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U12(X)) -> active#(X) p3: active#(U22(X1,X2)) -> active#(X1) p4: active#(U42(X1,X2)) -> active#(X1) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U53(X)) -> active#(X) p7: active#(U61(X1,X2)) -> active#(X1) p8: active#(U62(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: {p1, p2, p3, p4, p5, p6, p7, p8} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U62(X)) -> active#(X) p3: active#(U61(X1,X2)) -> active#(X1) p4: active#(U53(X)) -> active#(X) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U42(X1,X2)) -> active#(X1) p7: active#(U22(X1,X2)) -> active#(X1) p8: active#(U12(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = x1 + x2 + (1,1) U62_A(x1) = ((1,0),(0,0)) x1 + (1,1) U61_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,3) U53_A(x1) = ((1,0),(0,0)) x1 + (1,3) U52_A(x1,x2) = ((1,0),(1,1)) x1 + (3,3) U42_A(x1,x2) = ((1,0),(0,0)) x1 + (3,3) U22_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) U12_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: U12 > U42 > U62 > U22 > U61 > active# = U11 = U53 = U52 partial status: pi(active#) = [] pi(U11) = [] pi(U62) = [] pi(U61) = [] pi(U53) = [] pi(U52) = [] pi(U42) = [] pi(U22) = [2] pi(U12) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U61(X1,X2)) -> active#(X1) p3: active#(U53(X)) -> active#(X) p4: active#(U52(X1,X2)) -> active#(X1) p5: active#(U42(X1,X2)) -> active#(X1) p6: active#(U22(X1,X2)) -> active#(X1) p7: active#(U12(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: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U12(X)) -> active#(X) p3: active#(U22(X1,X2)) -> active#(X1) p4: active#(U42(X1,X2)) -> active#(X1) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U53(X)) -> active#(X) p7: active#(U61(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U12_A(x1) = x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,3) U52_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U53_A(x1) = x1 + (2,3) U61_A(x1,x2) = x1 + x2 + (2,3) precedence: U53 > U52 = U61 > U11 > active# = U12 = U22 = U42 partial status: pi(active#) = [1] pi(U11) = [1, 2] pi(U12) = [1] pi(U22) = [1, 2] pi(U42) = [1, 2] pi(U52) = [1, 2] pi(U53) = [] pi(U61) = [1, 2] The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U12(X)) -> active#(X) p3: active#(U22(X1,X2)) -> active#(X1) p4: active#(U42(X1,X2)) -> active#(X1) p5: active#(U52(X1,X2)) -> active#(X1) p6: active#(U53(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: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U53(X)) -> active#(X) p3: active#(U52(X1,X2)) -> active#(X1) p4: active#(U42(X1,X2)) -> active#(X1) p5: active#(U22(X1,X2)) -> active#(X1) p6: active#(U12(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U53_A(x1) = x1 + (2,3) U52_A(x1,x2) = x1 + x2 + (2,3) U42_A(x1,x2) = x1 + x2 + (2,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U12_A(x1) = x1 + (2,3) precedence: U12 > U53 > U11 > U52 > U22 > active# = U42 partial status: pi(active#) = [1] pi(U11) = [] pi(U53) = [] pi(U52) = [1, 2] pi(U42) = [1, 2] pi(U22) = [] pi(U12) = [] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U53(X)) -> active#(X) p3: active#(U42(X1,X2)) -> active#(X1) p4: active#(U22(X1,X2)) -> active#(X1) p5: active#(U12(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: {p1, p2, p3, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U11(X1,X2)) -> active#(X1) p2: active#(U12(X)) -> active#(X) p3: active#(U22(X1,X2)) -> active#(X1) p4: active#(U42(X1,X2)) -> active#(X1) p5: active#(U53(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(1,1)) x1 + (1,0) U11_A(x1,x2) = x1 + x2 + (2,1) U12_A(x1) = x1 + (2,1) U22_A(x1,x2) = ((1,0),(1,1)) x1 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,1) U53_A(x1) = x1 + (2,1) precedence: U42 > U53 > active# = U11 > U12 = U22 partial status: pi(active#) = [1] pi(U11) = [] pi(U12) = [1] pi(U22) = [1] pi(U42) = [1, 2] pi(U53) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U12(X)) -> active#(X) p2: active#(U22(X1,X2)) -> active#(X1) p3: active#(U42(X1,X2)) -> active#(X1) p4: active#(U53(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: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U12(X)) -> active#(X) p2: active#(U53(X)) -> active#(X) p3: active#(U42(X1,X2)) -> active#(X1) p4: active#(U22(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,1) U12_A(x1) = x1 + (2,2) U53_A(x1) = x1 + (2,2) U42_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,2) U22_A(x1,x2) = x1 + x2 + (2,2) precedence: U53 = U42 > active# = U22 > U12 partial status: pi(active#) = [1] pi(U12) = [] pi(U53) = [] pi(U42) = [] pi(U22) = [1, 2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U53(X)) -> active#(X) p2: active#(U42(X1,X2)) -> active#(X1) p3: active#(U22(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, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U53(X)) -> active#(X) p2: active#(U22(X1,X2)) -> active#(X1) p3: active#(U42(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = x1 + (1,2) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,3) U42_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (2,1) precedence: active# = U53 = U22 = U42 partial status: pi(active#) = [1] pi(U53) = [1] pi(U22) = [1, 2] pi(U42) = [2] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U53(X)) -> active#(X) p2: active#(U22(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, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U53(X)) -> active#(X) p2: active#(U22(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(1,0)) x1 + (1,2) U53_A(x1) = ((1,0),(0,0)) x1 + (2,1) U22_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (2,1) precedence: active# = U53 = U22 partial status: pi(active#) = [] pi(U53) = [] pi(U22) = [2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U22(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#(U22(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((1,0),(1,1)) x1 U22_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,1) precedence: active# = U22 partial status: pi(active#) = [1] pi(U22) = [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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) isPal_A(x1) = ((1,0),(1,1)) x1 + (2,1) isPalListKind_A(x1) = x1 + (2,1) and_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,1) U72_A(x1) = x1 + (2,1) U71_A(x1,x2) = x1 + x2 + (2,1) U62_A(x1) = x1 + (2,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,1) U52_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U51_A(x1,x2,x3) = x1 + x2 + ((1,0),(1,1)) x3 + (2,1) U43_A(x1) = x1 + (2,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) isQid_A(x1) = ((1,0),(1,1)) x1 + (2,1) U32_A(x1) = x1 + (2,1) U31_A(x1,x2) = x1 + x2 + (2,1) U23_A(x1) = x1 + (2,3) isList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,3) U21_A(x1,x2,x3) = x1 + x2 + ((1,0),(1,1)) x3 + (2,3) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,3) U11_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) ___A(x1,x2) = x1 + x2 + (2,3) precedence: U12 > isNeList > U42 > U22 > __ > U11 > U72 > isNePal > isPalListKind > and > U71 = U62 > U53 > isPal > U51 > U43 > isQid > U23 = U21 > U52 > U41 > U61 > proper# = U32 = isList > U31 partial status: pi(proper#) = [1] pi(isPal) = [] pi(isPalListKind) = [] pi(and) = [] pi(isNePal) = [1] pi(U72) = [1] pi(U71) = [] pi(U62) = [] pi(U61) = [] pi(U53) = [1] pi(U52) = [] pi(U51) = [] pi(U43) = [] pi(U42) = [] pi(U41) = [1, 2, 3] pi(isQid) = [] pi(U32) = [1] pi(U31) = [1, 2] pi(U23) = [1] pi(isList) = [1] pi(U22) = [] pi(U21) = [1, 2, 3] pi(isNeList) = [] pi(U12) = [1] pi(U11) = [2] pi(__) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(isPalListKind(X)) -> proper#(X) p2: proper#(and(X1,X2)) -> proper#(X2) p3: proper#(and(X1,X2)) -> proper#(X1) p4: proper#(isNePal(X)) -> proper#(X) p5: proper#(U72(X)) -> proper#(X) p6: proper#(U71(X1,X2)) -> proper#(X2) p7: proper#(U71(X1,X2)) -> proper#(X1) p8: proper#(U62(X)) -> proper#(X) p9: proper#(U61(X1,X2)) -> proper#(X2) p10: proper#(U61(X1,X2)) -> proper#(X1) p11: proper#(U53(X)) -> proper#(X) p12: proper#(U52(X1,X2)) -> proper#(X2) p13: proper#(U52(X1,X2)) -> proper#(X1) p14: proper#(U51(X1,X2,X3)) -> proper#(X3) p15: proper#(U51(X1,X2,X3)) -> proper#(X2) p16: proper#(U51(X1,X2,X3)) -> proper#(X1) p17: proper#(U43(X)) -> proper#(X) p18: proper#(U42(X1,X2)) -> proper#(X2) p19: proper#(U42(X1,X2)) -> proper#(X1) p20: proper#(U41(X1,X2,X3)) -> proper#(X3) p21: proper#(U41(X1,X2,X3)) -> proper#(X2) p22: proper#(U41(X1,X2,X3)) -> proper#(X1) p23: proper#(isQid(X)) -> proper#(X) p24: proper#(U32(X)) -> proper#(X) p25: proper#(U31(X1,X2)) -> proper#(X2) p26: proper#(U31(X1,X2)) -> proper#(X1) p27: proper#(U23(X)) -> proper#(X) p28: proper#(isList(X)) -> proper#(X) p29: proper#(U22(X1,X2)) -> proper#(X2) p30: proper#(U22(X1,X2)) -> proper#(X1) p31: proper#(U21(X1,X2,X3)) -> proper#(X3) p32: proper#(U21(X1,X2,X3)) -> proper#(X2) p33: proper#(U21(X1,X2,X3)) -> proper#(X1) p34: proper#(isNeList(X)) -> proper#(X) p35: proper#(U12(X)) -> proper#(X) p36: proper#(U11(X1,X2)) -> proper#(X2) p37: proper#(U11(X1,X2)) -> proper#(X1) p38: proper#(__(X1,X2)) -> proper#(X2) p39: 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(isPalListKind(X)) -> proper#(X) p2: proper#(__(X1,X2)) -> proper#(X1) p3: proper#(__(X1,X2)) -> proper#(X2) p4: proper#(U11(X1,X2)) -> proper#(X1) p5: proper#(U11(X1,X2)) -> proper#(X2) p6: proper#(U12(X)) -> proper#(X) p7: proper#(isNeList(X)) -> proper#(X) p8: proper#(U21(X1,X2,X3)) -> proper#(X1) p9: proper#(U21(X1,X2,X3)) -> proper#(X2) p10: proper#(U21(X1,X2,X3)) -> proper#(X3) p11: proper#(U22(X1,X2)) -> proper#(X1) p12: proper#(U22(X1,X2)) -> proper#(X2) p13: proper#(isList(X)) -> proper#(X) p14: proper#(U23(X)) -> proper#(X) p15: proper#(U31(X1,X2)) -> proper#(X1) p16: proper#(U31(X1,X2)) -> proper#(X2) p17: proper#(U32(X)) -> proper#(X) p18: proper#(isQid(X)) -> proper#(X) p19: proper#(U41(X1,X2,X3)) -> proper#(X1) p20: proper#(U41(X1,X2,X3)) -> proper#(X2) p21: proper#(U41(X1,X2,X3)) -> proper#(X3) p22: proper#(U42(X1,X2)) -> proper#(X1) p23: proper#(U42(X1,X2)) -> proper#(X2) p24: proper#(U43(X)) -> proper#(X) p25: proper#(U51(X1,X2,X3)) -> proper#(X1) p26: proper#(U51(X1,X2,X3)) -> proper#(X2) p27: proper#(U51(X1,X2,X3)) -> proper#(X3) p28: proper#(U52(X1,X2)) -> proper#(X1) p29: proper#(U52(X1,X2)) -> proper#(X2) p30: proper#(U53(X)) -> proper#(X) p31: proper#(U61(X1,X2)) -> proper#(X1) p32: proper#(U61(X1,X2)) -> proper#(X2) p33: proper#(U62(X)) -> proper#(X) p34: proper#(U71(X1,X2)) -> proper#(X1) p35: proper#(U71(X1,X2)) -> proper#(X2) p36: proper#(U72(X)) -> proper#(X) p37: proper#(isNePal(X)) -> proper#(X) p38: proper#(and(X1,X2)) -> proper#(X1) p39: proper#(and(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) isPalListKind_A(x1) = x1 + (3,1) ___A(x1,x2) = x1 + x2 + (3,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + (3,3) U12_A(x1) = x1 + (1,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (3,3) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (3,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,3) isList_A(x1) = x1 + (3,1) U23_A(x1) = x1 + (1,1) U31_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,1) U32_A(x1) = x1 + (3,1) isQid_A(x1) = x1 + (1,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (3,1) U42_A(x1,x2) = x1 + x2 + (3,1) U43_A(x1) = x1 + (3,1) U51_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + ((1,0),(0,0)) x3 + (3,1) U52_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,3) U53_A(x1) = ((1,0),(0,0)) x1 + (1,3) U61_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,3) U62_A(x1) = ((1,0),(0,0)) x1 + (3,3) U71_A(x1,x2) = x1 + x2 + (3,3) U72_A(x1) = x1 + (3,3) isNePal_A(x1) = x1 + (3,3) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) precedence: isNeList > U12 > and > isNePal > U43 > U72 > isPalListKind > __ > U11 > U21 > U23 > U31 > U22 = U32 = U41 > U53 > U62 > U71 > isList > isQid > proper# = U42 = U51 = U52 > U61 partial status: pi(proper#) = [] pi(isPalListKind) = [1] pi(__) = [] pi(U11) = [] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(isQid) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [1] pi(U51) = [1, 2] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [2] pi(U72) = [] pi(isNePal) = [] pi(and) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(__(X1,X2)) -> proper#(X1) p2: proper#(__(X1,X2)) -> proper#(X2) p3: proper#(U11(X1,X2)) -> proper#(X1) p4: proper#(U11(X1,X2)) -> proper#(X2) p5: proper#(U12(X)) -> proper#(X) p6: proper#(isNeList(X)) -> proper#(X) p7: proper#(U21(X1,X2,X3)) -> proper#(X1) p8: proper#(U21(X1,X2,X3)) -> proper#(X2) p9: proper#(U21(X1,X2,X3)) -> proper#(X3) p10: proper#(U22(X1,X2)) -> proper#(X1) p11: proper#(U22(X1,X2)) -> proper#(X2) p12: proper#(isList(X)) -> proper#(X) p13: proper#(U23(X)) -> proper#(X) p14: proper#(U31(X1,X2)) -> proper#(X1) p15: proper#(U31(X1,X2)) -> proper#(X2) p16: proper#(U32(X)) -> proper#(X) p17: proper#(isQid(X)) -> proper#(X) p18: proper#(U41(X1,X2,X3)) -> proper#(X1) p19: proper#(U41(X1,X2,X3)) -> proper#(X2) p20: proper#(U41(X1,X2,X3)) -> proper#(X3) p21: proper#(U42(X1,X2)) -> proper#(X1) p22: proper#(U42(X1,X2)) -> proper#(X2) p23: proper#(U43(X)) -> proper#(X) p24: proper#(U51(X1,X2,X3)) -> proper#(X1) p25: proper#(U51(X1,X2,X3)) -> proper#(X2) p26: proper#(U51(X1,X2,X3)) -> proper#(X3) p27: proper#(U52(X1,X2)) -> proper#(X1) p28: proper#(U52(X1,X2)) -> proper#(X2) p29: proper#(U53(X)) -> proper#(X) p30: proper#(U61(X1,X2)) -> proper#(X1) p31: proper#(U61(X1,X2)) -> proper#(X2) p32: proper#(U62(X)) -> proper#(X) p33: proper#(U71(X1,X2)) -> proper#(X1) p34: proper#(U71(X1,X2)) -> proper#(X2) p35: proper#(U72(X)) -> proper#(X) p36: proper#(isNePal(X)) -> proper#(X) p37: proper#(and(X1,X2)) -> proper#(X1) p38: proper#(and(X1,X2)) -> proper#(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, p2, p3, p4, p5, 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(__(X1,X2)) -> proper#(X1) p2: proper#(and(X1,X2)) -> proper#(X2) p3: proper#(and(X1,X2)) -> proper#(X1) p4: proper#(isNePal(X)) -> proper#(X) p5: proper#(U72(X)) -> proper#(X) p6: proper#(U71(X1,X2)) -> proper#(X2) p7: proper#(U71(X1,X2)) -> proper#(X1) p8: proper#(U62(X)) -> proper#(X) p9: proper#(U61(X1,X2)) -> proper#(X2) p10: proper#(U61(X1,X2)) -> proper#(X1) p11: proper#(U53(X)) -> proper#(X) p12: proper#(U52(X1,X2)) -> proper#(X2) p13: proper#(U52(X1,X2)) -> proper#(X1) p14: proper#(U51(X1,X2,X3)) -> proper#(X3) p15: proper#(U51(X1,X2,X3)) -> proper#(X2) p16: proper#(U51(X1,X2,X3)) -> proper#(X1) p17: proper#(U43(X)) -> proper#(X) p18: proper#(U42(X1,X2)) -> proper#(X2) p19: proper#(U42(X1,X2)) -> proper#(X1) p20: proper#(U41(X1,X2,X3)) -> proper#(X3) p21: proper#(U41(X1,X2,X3)) -> proper#(X2) p22: proper#(U41(X1,X2,X3)) -> proper#(X1) p23: proper#(isQid(X)) -> proper#(X) p24: proper#(U32(X)) -> proper#(X) p25: proper#(U31(X1,X2)) -> proper#(X2) p26: proper#(U31(X1,X2)) -> proper#(X1) p27: proper#(U23(X)) -> proper#(X) p28: proper#(isList(X)) -> proper#(X) p29: proper#(U22(X1,X2)) -> proper#(X2) p30: proper#(U22(X1,X2)) -> proper#(X1) p31: proper#(U21(X1,X2,X3)) -> proper#(X3) p32: proper#(U21(X1,X2,X3)) -> proper#(X2) p33: proper#(U21(X1,X2,X3)) -> proper#(X1) p34: proper#(isNeList(X)) -> proper#(X) p35: proper#(U12(X)) -> proper#(X) p36: proper#(U11(X1,X2)) -> proper#(X2) p37: proper#(U11(X1,X2)) -> proper#(X1) p38: proper#(__(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) ___A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,1) U72_A(x1) = ((1,0),(1,1)) x1 + (2,1) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,1) U52_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U51_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + x3 + (2,3) U43_A(x1) = x1 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) isQid_A(x1) = x1 + (2,1) U32_A(x1) = x1 + (2,3) U31_A(x1,x2) = x1 + x2 + (2,3) U23_A(x1) = x1 + (2,3) isList_A(x1) = x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,3) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (2,3) isNeList_A(x1) = x1 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,3) U11_A(x1,x2) = x1 + x2 + (2,3) precedence: U72 > U71 > isNePal > U11 > U62 > U52 > U43 > U42 = U31 > U41 > isList > U21 > isNeList > proper# > __ > U61 = isQid > U51 = U32 > U23 > U22 > U12 > and > U53 partial status: pi(proper#) = [1] pi(__) = [1, 2] pi(and) = [] pi(isNePal) = [1] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U61) = [] pi(U53) = [] pi(U52) = [] pi(U51) = [] pi(U43) = [] pi(U42) = [1, 2] pi(U41) = [] pi(isQid) = [] pi(U32) = [1] pi(U31) = [1, 2] pi(U23) = [] pi(isList) = [1] pi(U22) = [] pi(U21) = [] pi(isNeList) = [] pi(U12) = [] pi(U11) = [1, 2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(and(X1,X2)) -> proper#(X2) p2: proper#(and(X1,X2)) -> proper#(X1) p3: proper#(isNePal(X)) -> proper#(X) p4: proper#(U72(X)) -> proper#(X) p5: proper#(U71(X1,X2)) -> proper#(X2) p6: proper#(U71(X1,X2)) -> proper#(X1) p7: proper#(U62(X)) -> proper#(X) p8: proper#(U61(X1,X2)) -> proper#(X2) p9: proper#(U61(X1,X2)) -> proper#(X1) p10: proper#(U53(X)) -> proper#(X) p11: proper#(U52(X1,X2)) -> proper#(X2) p12: proper#(U52(X1,X2)) -> proper#(X1) p13: proper#(U51(X1,X2,X3)) -> proper#(X3) p14: proper#(U51(X1,X2,X3)) -> proper#(X2) p15: proper#(U51(X1,X2,X3)) -> proper#(X1) p16: proper#(U43(X)) -> proper#(X) p17: proper#(U42(X1,X2)) -> proper#(X2) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U41(X1,X2,X3)) -> proper#(X3) p20: proper#(U41(X1,X2,X3)) -> proper#(X2) p21: proper#(U41(X1,X2,X3)) -> proper#(X1) p22: proper#(isQid(X)) -> proper#(X) p23: proper#(U32(X)) -> proper#(X) p24: proper#(U31(X1,X2)) -> proper#(X2) p25: proper#(U31(X1,X2)) -> proper#(X1) p26: proper#(U23(X)) -> proper#(X) p27: proper#(isList(X)) -> proper#(X) p28: proper#(U22(X1,X2)) -> proper#(X2) p29: proper#(U22(X1,X2)) -> proper#(X1) p30: proper#(U21(X1,X2,X3)) -> proper#(X3) p31: proper#(U21(X1,X2,X3)) -> proper#(X2) p32: proper#(U21(X1,X2,X3)) -> proper#(X1) p33: proper#(isNeList(X)) -> proper#(X) p34: proper#(U12(X)) -> proper#(X) p35: proper#(U11(X1,X2)) -> proper#(X2) p36: proper#(U11(X1,X2)) -> proper#(X1) p37: proper#(__(X1,X2)) -> proper#(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, p2, p3, p4, p5, 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(and(X1,X2)) -> proper#(X2) p2: proper#(__(X1,X2)) -> proper#(X2) p3: proper#(U11(X1,X2)) -> proper#(X1) p4: proper#(U11(X1,X2)) -> proper#(X2) p5: proper#(U12(X)) -> proper#(X) p6: proper#(isNeList(X)) -> proper#(X) p7: proper#(U21(X1,X2,X3)) -> proper#(X1) p8: proper#(U21(X1,X2,X3)) -> proper#(X2) p9: proper#(U21(X1,X2,X3)) -> proper#(X3) p10: proper#(U22(X1,X2)) -> proper#(X1) p11: proper#(U22(X1,X2)) -> proper#(X2) p12: proper#(isList(X)) -> proper#(X) p13: proper#(U23(X)) -> proper#(X) p14: proper#(U31(X1,X2)) -> proper#(X1) p15: proper#(U31(X1,X2)) -> proper#(X2) p16: proper#(U32(X)) -> proper#(X) p17: proper#(isQid(X)) -> proper#(X) p18: proper#(U41(X1,X2,X3)) -> proper#(X1) p19: proper#(U41(X1,X2,X3)) -> proper#(X2) p20: proper#(U41(X1,X2,X3)) -> proper#(X3) p21: proper#(U42(X1,X2)) -> proper#(X1) p22: proper#(U42(X1,X2)) -> proper#(X2) p23: proper#(U43(X)) -> proper#(X) p24: proper#(U51(X1,X2,X3)) -> proper#(X1) p25: proper#(U51(X1,X2,X3)) -> proper#(X2) p26: proper#(U51(X1,X2,X3)) -> proper#(X3) p27: proper#(U52(X1,X2)) -> proper#(X1) p28: proper#(U52(X1,X2)) -> proper#(X2) p29: proper#(U53(X)) -> proper#(X) p30: proper#(U61(X1,X2)) -> proper#(X1) p31: proper#(U61(X1,X2)) -> proper#(X2) p32: proper#(U62(X)) -> proper#(X) p33: proper#(U71(X1,X2)) -> proper#(X1) p34: proper#(U71(X1,X2)) -> proper#(X2) p35: proper#(U72(X)) -> proper#(X) p36: proper#(isNePal(X)) -> proper#(X) p37: proper#(and(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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) ___A(x1,x2) = x2 + (2,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U12_A(x1) = x1 + (2,1) isNeList_A(x1) = x1 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) isList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U23_A(x1) = x1 + (2,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U32_A(x1) = ((1,0),(1,1)) x1 + (2,1) isQid_A(x1) = x1 + (2,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,3) U42_A(x1,x2) = x1 + x2 + (2,3) U43_A(x1) = x1 + (2,3) U51_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U52_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U53_A(x1) = x1 + (2,3) U61_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U62_A(x1) = x1 + (2,3) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,3) precedence: isNeList > U11 > U72 > proper# = isQid = U51 = U71 = isNePal > U12 > U22 > isList > U23 > U31 > U32 > U41 > U42 > __ = U43 > U52 > and = U21 > U61 > U62 > U53 partial status: pi(proper#) = [1] pi(and) = [1, 2] pi(__) = [] pi(U11) = [] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [1, 2] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [1] pi(isQid) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [] pi(U51) = [1, 2, 3] pi(U52) = [1, 2] pi(U53) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [2] pi(U72) = [] pi(isNePal) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(__(X1,X2)) -> proper#(X2) p2: proper#(U11(X1,X2)) -> proper#(X1) p3: proper#(U11(X1,X2)) -> proper#(X2) p4: proper#(U12(X)) -> proper#(X) p5: proper#(isNeList(X)) -> proper#(X) p6: proper#(U21(X1,X2,X3)) -> proper#(X1) p7: proper#(U21(X1,X2,X3)) -> proper#(X2) p8: proper#(U21(X1,X2,X3)) -> proper#(X3) p9: proper#(U22(X1,X2)) -> proper#(X1) p10: proper#(U22(X1,X2)) -> proper#(X2) p11: proper#(isList(X)) -> proper#(X) p12: proper#(U23(X)) -> proper#(X) p13: proper#(U31(X1,X2)) -> proper#(X1) p14: proper#(U31(X1,X2)) -> proper#(X2) p15: proper#(U32(X)) -> proper#(X) p16: proper#(isQid(X)) -> proper#(X) p17: proper#(U41(X1,X2,X3)) -> proper#(X1) p18: proper#(U41(X1,X2,X3)) -> proper#(X2) p19: proper#(U41(X1,X2,X3)) -> proper#(X3) p20: proper#(U42(X1,X2)) -> proper#(X1) p21: proper#(U42(X1,X2)) -> proper#(X2) p22: proper#(U43(X)) -> proper#(X) p23: proper#(U51(X1,X2,X3)) -> proper#(X1) p24: proper#(U51(X1,X2,X3)) -> proper#(X2) p25: proper#(U51(X1,X2,X3)) -> proper#(X3) p26: proper#(U52(X1,X2)) -> proper#(X1) p27: proper#(U52(X1,X2)) -> proper#(X2) p28: proper#(U53(X)) -> proper#(X) p29: proper#(U61(X1,X2)) -> proper#(X1) p30: proper#(U61(X1,X2)) -> proper#(X2) p31: proper#(U62(X)) -> proper#(X) p32: proper#(U71(X1,X2)) -> proper#(X1) p33: proper#(U71(X1,X2)) -> proper#(X2) p34: proper#(U72(X)) -> proper#(X) p35: proper#(isNePal(X)) -> proper#(X) p36: proper#(and(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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(__(X1,X2)) -> proper#(X2) p2: proper#(and(X1,X2)) -> proper#(X1) p3: proper#(isNePal(X)) -> proper#(X) p4: proper#(U72(X)) -> proper#(X) p5: proper#(U71(X1,X2)) -> proper#(X2) p6: proper#(U71(X1,X2)) -> proper#(X1) p7: proper#(U62(X)) -> proper#(X) p8: proper#(U61(X1,X2)) -> proper#(X2) p9: proper#(U61(X1,X2)) -> proper#(X1) p10: proper#(U53(X)) -> proper#(X) p11: proper#(U52(X1,X2)) -> proper#(X2) p12: proper#(U52(X1,X2)) -> proper#(X1) p13: proper#(U51(X1,X2,X3)) -> proper#(X3) p14: proper#(U51(X1,X2,X3)) -> proper#(X2) p15: proper#(U51(X1,X2,X3)) -> proper#(X1) p16: proper#(U43(X)) -> proper#(X) p17: proper#(U42(X1,X2)) -> proper#(X2) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U41(X1,X2,X3)) -> proper#(X3) p20: proper#(U41(X1,X2,X3)) -> proper#(X2) p21: proper#(U41(X1,X2,X3)) -> proper#(X1) p22: proper#(isQid(X)) -> proper#(X) p23: proper#(U32(X)) -> proper#(X) p24: proper#(U31(X1,X2)) -> proper#(X2) p25: proper#(U31(X1,X2)) -> proper#(X1) p26: proper#(U23(X)) -> proper#(X) p27: proper#(isList(X)) -> proper#(X) p28: proper#(U22(X1,X2)) -> proper#(X2) p29: proper#(U22(X1,X2)) -> proper#(X1) p30: proper#(U21(X1,X2,X3)) -> proper#(X3) p31: proper#(U21(X1,X2,X3)) -> proper#(X2) p32: proper#(U21(X1,X2,X3)) -> proper#(X1) p33: proper#(isNeList(X)) -> proper#(X) p34: proper#(U12(X)) -> proper#(X) p35: proper#(U11(X1,X2)) -> proper#(X2) p36: proper#(U11(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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) ___A(x1,x2) = ((1,0),(1,1)) x2 + (2,1) and_A(x1,x2) = ((1,0),(1,1)) x1 + (2,1) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,1) U72_A(x1) = ((1,0),(1,1)) x1 + (2,1) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U62_A(x1) = x1 + (2,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U52_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U43_A(x1) = ((1,0),(1,1)) x1 + (2,1) U42_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) isQid_A(x1) = x1 + (2,1) U32_A(x1) = x1 + (2,3) U31_A(x1,x2) = x1 + x2 + (2,1) U23_A(x1) = ((1,0),(1,1)) x1 + (2,3) isList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,3) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (2,3) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,3) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) precedence: U12 > U11 > U72 > isNePal > U53 > __ = U71 > isNeList > U32 > U31 > U61 = U22 = U21 > and > U62 = U52 > U51 > U43 > proper# = U42 = U41 = U23 > isQid > isList partial status: pi(proper#) = [1] pi(__) = [2] pi(and) = [] pi(isNePal) = [] pi(U72) = [1] pi(U71) = [1, 2] pi(U62) = [1] pi(U61) = [1, 2] pi(U53) = [] pi(U52) = [1, 2] pi(U51) = [] pi(U43) = [] pi(U42) = [1, 2] pi(U41) = [1, 3] pi(isQid) = [1] pi(U32) = [] pi(U31) = [] pi(U23) = [1] pi(isList) = [] pi(U22) = [1, 2] pi(U21) = [2, 3] pi(isNeList) = [] pi(U12) = [1] pi(U11) = [2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(and(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U61(X1,X2)) -> proper#(X2) p8: proper#(U61(X1,X2)) -> proper#(X1) p9: proper#(U53(X)) -> proper#(X) p10: proper#(U52(X1,X2)) -> proper#(X2) p11: proper#(U52(X1,X2)) -> proper#(X1) p12: proper#(U51(X1,X2,X3)) -> proper#(X3) p13: proper#(U51(X1,X2,X3)) -> proper#(X2) p14: proper#(U51(X1,X2,X3)) -> proper#(X1) p15: proper#(U43(X)) -> proper#(X) p16: proper#(U42(X1,X2)) -> proper#(X2) p17: proper#(U42(X1,X2)) -> proper#(X1) p18: proper#(U41(X1,X2,X3)) -> proper#(X3) p19: proper#(U41(X1,X2,X3)) -> proper#(X2) p20: proper#(U41(X1,X2,X3)) -> proper#(X1) p21: proper#(isQid(X)) -> proper#(X) p22: proper#(U32(X)) -> proper#(X) p23: proper#(U31(X1,X2)) -> proper#(X2) p24: proper#(U31(X1,X2)) -> proper#(X1) p25: proper#(U23(X)) -> proper#(X) p26: proper#(isList(X)) -> proper#(X) p27: proper#(U22(X1,X2)) -> proper#(X2) p28: proper#(U22(X1,X2)) -> proper#(X1) p29: proper#(U21(X1,X2,X3)) -> proper#(X3) p30: proper#(U21(X1,X2,X3)) -> proper#(X2) p31: proper#(U21(X1,X2,X3)) -> proper#(X1) p32: proper#(isNeList(X)) -> proper#(X) p33: proper#(U12(X)) -> proper#(X) p34: proper#(U11(X1,X2)) -> proper#(X2) p35: proper#(U11(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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(and(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X1) p3: proper#(U11(X1,X2)) -> proper#(X2) p4: proper#(U12(X)) -> proper#(X) p5: proper#(isNeList(X)) -> proper#(X) p6: proper#(U21(X1,X2,X3)) -> proper#(X1) p7: proper#(U21(X1,X2,X3)) -> proper#(X2) p8: proper#(U21(X1,X2,X3)) -> proper#(X3) p9: proper#(U22(X1,X2)) -> proper#(X1) p10: proper#(U22(X1,X2)) -> proper#(X2) p11: proper#(isList(X)) -> proper#(X) p12: proper#(U23(X)) -> proper#(X) p13: proper#(U31(X1,X2)) -> proper#(X1) p14: proper#(U31(X1,X2)) -> proper#(X2) p15: proper#(U32(X)) -> proper#(X) p16: proper#(isQid(X)) -> proper#(X) p17: proper#(U41(X1,X2,X3)) -> proper#(X1) p18: proper#(U41(X1,X2,X3)) -> proper#(X2) p19: proper#(U41(X1,X2,X3)) -> proper#(X3) p20: proper#(U42(X1,X2)) -> proper#(X1) p21: proper#(U42(X1,X2)) -> proper#(X2) p22: proper#(U43(X)) -> proper#(X) p23: proper#(U51(X1,X2,X3)) -> proper#(X1) p24: proper#(U51(X1,X2,X3)) -> proper#(X2) p25: proper#(U51(X1,X2,X3)) -> proper#(X3) p26: proper#(U52(X1,X2)) -> proper#(X1) p27: proper#(U52(X1,X2)) -> proper#(X2) p28: proper#(U53(X)) -> proper#(X) p29: proper#(U61(X1,X2)) -> proper#(X1) p30: proper#(U61(X1,X2)) -> proper#(X2) p31: proper#(U62(X)) -> proper#(X) p32: proper#(U71(X1,X2)) -> proper#(X1) p33: proper#(U71(X1,X2)) -> proper#(X2) p34: proper#(U72(X)) -> proper#(X) p35: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 + (2,2) and_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,1) U12_A(x1) = x1 + (3,1) isNeList_A(x1) = x1 + (3,1) U21_A(x1,x2,x3) = x1 + x2 + x3 + (3,1) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,1) isList_A(x1) = x1 + (3,1) U23_A(x1) = x1 + (3,1) U31_A(x1,x2) = x1 + x2 + (3,1) U32_A(x1) = x1 + (3,1) isQid_A(x1) = x1 + (3,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (3,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,3) U43_A(x1) = ((1,0),(1,1)) x1 + (3,3) U51_A(x1,x2,x3) = x1 + x2 + x3 + (3,3) U52_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U53_A(x1) = ((1,0),(1,1)) x1 + (3,3) U61_A(x1,x2) = x1 + x2 + (3,3) U62_A(x1) = ((1,0),(1,1)) x1 + (3,3) U71_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,3) U72_A(x1) = x1 + (3,3) isNePal_A(x1) = ((1,0),(1,1)) x1 + (1,3) precedence: isNePal > U12 > U11 > U72 > U71 > isList > U62 > U61 > isNeList > U22 > U41 > U42 > and = U23 = U51 > U21 > isQid > U53 > U31 = U52 > proper# = U43 > U32 partial status: pi(proper#) = [1] pi(and) = [] pi(U11) = [] pi(U12) = [] pi(isNeList) = [] pi(U21) = [2, 3] pi(U22) = [] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(isQid) = [] pi(U41) = [1, 2, 3] pi(U42) = [] pi(U43) = [1] pi(U51) = [1, 3] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(U62) = [1] pi(U71) = [] pi(U72) = [] pi(isNePal) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U21(X1,X2,X3)) -> proper#(X3) p8: proper#(U22(X1,X2)) -> proper#(X1) p9: proper#(U22(X1,X2)) -> proper#(X2) p10: proper#(isList(X)) -> proper#(X) p11: proper#(U23(X)) -> proper#(X) p12: proper#(U31(X1,X2)) -> proper#(X1) p13: proper#(U31(X1,X2)) -> proper#(X2) p14: proper#(U32(X)) -> proper#(X) p15: proper#(isQid(X)) -> proper#(X) p16: proper#(U41(X1,X2,X3)) -> proper#(X1) p17: proper#(U41(X1,X2,X3)) -> proper#(X2) p18: proper#(U41(X1,X2,X3)) -> proper#(X3) p19: proper#(U42(X1,X2)) -> proper#(X1) p20: proper#(U42(X1,X2)) -> proper#(X2) p21: proper#(U43(X)) -> proper#(X) p22: proper#(U51(X1,X2,X3)) -> proper#(X1) p23: proper#(U51(X1,X2,X3)) -> proper#(X2) p24: proper#(U51(X1,X2,X3)) -> proper#(X3) p25: proper#(U52(X1,X2)) -> proper#(X1) p26: proper#(U52(X1,X2)) -> proper#(X2) p27: proper#(U53(X)) -> proper#(X) p28: proper#(U61(X1,X2)) -> proper#(X1) p29: proper#(U61(X1,X2)) -> proper#(X2) p30: proper#(U62(X)) -> proper#(X) p31: proper#(U71(X1,X2)) -> proper#(X1) p32: proper#(U71(X1,X2)) -> proper#(X2) p33: proper#(U72(X)) -> proper#(X) p34: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U61(X1,X2)) -> proper#(X2) p8: proper#(U61(X1,X2)) -> proper#(X1) p9: proper#(U53(X)) -> proper#(X) p10: proper#(U52(X1,X2)) -> proper#(X2) p11: proper#(U52(X1,X2)) -> proper#(X1) p12: proper#(U51(X1,X2,X3)) -> proper#(X3) p13: proper#(U51(X1,X2,X3)) -> proper#(X2) p14: proper#(U51(X1,X2,X3)) -> proper#(X1) p15: proper#(U43(X)) -> proper#(X) p16: proper#(U42(X1,X2)) -> proper#(X2) p17: proper#(U42(X1,X2)) -> proper#(X1) p18: proper#(U41(X1,X2,X3)) -> proper#(X3) p19: proper#(U41(X1,X2,X3)) -> proper#(X2) p20: proper#(U41(X1,X2,X3)) -> proper#(X1) p21: proper#(isQid(X)) -> proper#(X) p22: proper#(U32(X)) -> proper#(X) p23: proper#(U31(X1,X2)) -> proper#(X2) p24: proper#(U31(X1,X2)) -> proper#(X1) p25: proper#(U23(X)) -> proper#(X) p26: proper#(isList(X)) -> proper#(X) p27: proper#(U22(X1,X2)) -> proper#(X2) p28: proper#(U22(X1,X2)) -> proper#(X1) p29: proper#(U21(X1,X2,X3)) -> proper#(X3) p30: proper#(U21(X1,X2,X3)) -> proper#(X2) p31: proper#(U21(X1,X2,X3)) -> proper#(X1) p32: proper#(isNeList(X)) -> proper#(X) p33: proper#(U12(X)) -> proper#(X) p34: proper#(U11(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U11_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,1) U72_A(x1) = x1 + (2,1) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) U62_A(x1) = x1 + (2,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,1) U52_A(x1,x2) = x1 + x2 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U43_A(x1) = ((1,0),(1,1)) x1 + (2,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U41_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + x3 + (2,3) isQid_A(x1) = x1 + (2,3) U32_A(x1) = x1 + (2,3) U31_A(x1,x2) = x1 + x2 + (2,3) U23_A(x1) = x1 + (2,3) isList_A(x1) = x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,3) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (2,3) isNeList_A(x1) = x1 + (2,3) U12_A(x1) = x1 + (2,3) precedence: isNeList > U12 > U61 > U41 > U31 > proper# = U23 > U71 > isNePal > U72 > U62 > U11 > U53 > U52 > U51 > U43 > U42 > U32 > isList > isQid > U21 > U22 partial status: pi(proper#) = [1] pi(U11) = [] pi(isNePal) = [] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U61) = [] pi(U53) = [] pi(U52) = [] pi(U51) = [] pi(U43) = [] pi(U42) = [] pi(U41) = [] pi(isQid) = [] pi(U32) = [1] pi(U31) = [2] pi(U23) = [1] pi(isList) = [] pi(U22) = [] pi(U21) = [1, 2, 3] pi(isNeList) = [] pi(U12) = [] The next rules are strictly ordered: p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U61(X1,X2)) -> proper#(X2) p8: proper#(U53(X)) -> proper#(X) p9: proper#(U52(X1,X2)) -> proper#(X2) p10: proper#(U52(X1,X2)) -> proper#(X1) p11: proper#(U51(X1,X2,X3)) -> proper#(X3) p12: proper#(U51(X1,X2,X3)) -> proper#(X2) p13: proper#(U51(X1,X2,X3)) -> proper#(X1) p14: proper#(U43(X)) -> proper#(X) p15: proper#(U42(X1,X2)) -> proper#(X2) p16: proper#(U42(X1,X2)) -> proper#(X1) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U41(X1,X2,X3)) -> proper#(X2) p19: proper#(U41(X1,X2,X3)) -> proper#(X1) p20: proper#(isQid(X)) -> proper#(X) p21: proper#(U32(X)) -> proper#(X) p22: proper#(U31(X1,X2)) -> proper#(X2) p23: proper#(U31(X1,X2)) -> proper#(X1) p24: proper#(U23(X)) -> proper#(X) p25: proper#(isList(X)) -> proper#(X) p26: proper#(U22(X1,X2)) -> proper#(X2) p27: proper#(U22(X1,X2)) -> proper#(X1) p28: proper#(U21(X1,X2,X3)) -> proper#(X3) p29: proper#(U21(X1,X2,X3)) -> proper#(X2) p30: proper#(U21(X1,X2,X3)) -> proper#(X1) p31: proper#(isNeList(X)) -> proper#(X) p32: proper#(U12(X)) -> proper#(X) p33: proper#(U11(X1,X2)) -> proper#(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, p2, p3, p4, p5, 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U21(X1,X2,X3)) -> proper#(X3) p8: proper#(U22(X1,X2)) -> proper#(X1) p9: proper#(U22(X1,X2)) -> proper#(X2) p10: proper#(isList(X)) -> proper#(X) p11: proper#(U23(X)) -> proper#(X) p12: proper#(U31(X1,X2)) -> proper#(X1) p13: proper#(U31(X1,X2)) -> proper#(X2) p14: proper#(U32(X)) -> proper#(X) p15: proper#(isQid(X)) -> proper#(X) p16: proper#(U41(X1,X2,X3)) -> proper#(X1) p17: proper#(U41(X1,X2,X3)) -> proper#(X2) p18: proper#(U41(X1,X2,X3)) -> proper#(X3) p19: proper#(U42(X1,X2)) -> proper#(X1) p20: proper#(U42(X1,X2)) -> proper#(X2) p21: proper#(U43(X)) -> proper#(X) p22: proper#(U51(X1,X2,X3)) -> proper#(X1) p23: proper#(U51(X1,X2,X3)) -> proper#(X2) p24: proper#(U51(X1,X2,X3)) -> proper#(X3) p25: proper#(U52(X1,X2)) -> proper#(X1) p26: proper#(U52(X1,X2)) -> proper#(X2) p27: proper#(U53(X)) -> proper#(X) p28: proper#(U61(X1,X2)) -> proper#(X2) p29: proper#(U62(X)) -> proper#(X) p30: proper#(U71(X1,X2)) -> proper#(X1) p31: proper#(U71(X1,X2)) -> proper#(X2) p32: proper#(U72(X)) -> proper#(X) p33: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1) U12_A(x1) = ((1,0),(1,1)) x1 + (1,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (1,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (1,1) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1) isList_A(x1) = ((1,0),(1,1)) x1 + (1,1) U23_A(x1) = ((1,0),(1,1)) x1 + (1,1) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (1,1) U32_A(x1) = x1 + (1,1) isQid_A(x1) = ((1,0),(1,1)) x1 + (1,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (1,1) U42_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (1,1) U43_A(x1) = x1 + (1,1) U51_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (1,1) U52_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (1,1) U53_A(x1) = ((1,0),(0,0)) x1 + (1,1) U61_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (1,1) U62_A(x1) = x1 + (1,1) U71_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (1,1) U72_A(x1) = x1 + (1,1) isNePal_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: proper# = U11 > U21 > isNeList > U12 > U22 > isList > U23 > U32 > U41 > U51 = U52 > U53 > isNePal > U31 > isQid > U42 > U43 = U61 > U71 > U62 > U72 partial status: pi(proper#) = [] pi(U11) = [] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(isQid) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [1] pi(U51) = [2, 3] pi(U52) = [] pi(U53) = [] pi(U61) = [1] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(isNePal) = [] The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U22(X1,X2)) -> proper#(X1) p8: proper#(U22(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> proper#(X) p10: proper#(U23(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X1) p12: proper#(U31(X1,X2)) -> proper#(X2) p13: proper#(U32(X)) -> proper#(X) p14: proper#(isQid(X)) -> proper#(X) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(U41(X1,X2,X3)) -> proper#(X2) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U42(X1,X2)) -> proper#(X2) p20: proper#(U43(X)) -> proper#(X) p21: proper#(U51(X1,X2,X3)) -> proper#(X1) p22: proper#(U51(X1,X2,X3)) -> proper#(X2) p23: proper#(U51(X1,X2,X3)) -> proper#(X3) p24: proper#(U52(X1,X2)) -> proper#(X1) p25: proper#(U52(X1,X2)) -> proper#(X2) p26: proper#(U53(X)) -> proper#(X) p27: proper#(U61(X1,X2)) -> proper#(X2) p28: proper#(U62(X)) -> proper#(X) p29: proper#(U71(X1,X2)) -> proper#(X1) p30: proper#(U71(X1,X2)) -> proper#(X2) p31: proper#(U72(X)) -> proper#(X) p32: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U61(X1,X2)) -> proper#(X2) p8: proper#(U53(X)) -> proper#(X) p9: proper#(U52(X1,X2)) -> proper#(X2) p10: proper#(U52(X1,X2)) -> proper#(X1) p11: proper#(U51(X1,X2,X3)) -> proper#(X3) p12: proper#(U51(X1,X2,X3)) -> proper#(X2) p13: proper#(U51(X1,X2,X3)) -> proper#(X1) p14: proper#(U43(X)) -> proper#(X) p15: proper#(U42(X1,X2)) -> proper#(X2) p16: proper#(U42(X1,X2)) -> proper#(X1) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U41(X1,X2,X3)) -> proper#(X2) p19: proper#(U41(X1,X2,X3)) -> proper#(X1) p20: proper#(isQid(X)) -> proper#(X) p21: proper#(U32(X)) -> proper#(X) p22: proper#(U31(X1,X2)) -> proper#(X2) p23: proper#(U31(X1,X2)) -> proper#(X1) p24: proper#(U23(X)) -> proper#(X) p25: proper#(isList(X)) -> proper#(X) p26: proper#(U22(X1,X2)) -> proper#(X2) p27: proper#(U22(X1,X2)) -> proper#(X1) p28: proper#(U21(X1,X2,X3)) -> proper#(X2) p29: proper#(U21(X1,X2,X3)) -> proper#(X1) p30: proper#(isNeList(X)) -> proper#(X) p31: proper#(U12(X)) -> proper#(X) p32: proper#(U11(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (3,3) isNePal_A(x1) = ((1,0),(1,1)) x1 + (3,3) U72_A(x1) = x1 + (1,1) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,1) U62_A(x1) = x1 + (1,1) U61_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (3,3) U53_A(x1) = ((1,0),(1,1)) x1 + (3,1) U52_A(x1,x2) = x1 + x2 + (3,1) U51_A(x1,x2,x3) = x1 + x2 + x3 + (3,1) U43_A(x1) = x1 + (1,1) U42_A(x1,x2) = x1 + x2 + (3,1) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + ((1,0),(0,0)) x3 + (3,1) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,1) U32_A(x1) = ((1,0),(0,0)) x1 + (3,3) U31_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (3,3) U23_A(x1) = ((1,0),(0,0)) x1 + (3,3) isList_A(x1) = ((1,0),(0,0)) x1 + (3,3) U22_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,3) U21_A(x1,x2,x3) = x1 + x2 + ((1,0),(1,1)) x3 + (3,3) isNeList_A(x1) = ((1,0),(0,0)) x1 + (3,3) U12_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: U72 > U71 > isNePal > isQid = U12 > isNeList > U11 > U53 > U43 > U42 > U52 = U21 > U23 > U51 > U61 = U22 > proper# = U41 = U31 > U32 > isList > U62 partial status: pi(proper#) = [] pi(U11) = [] pi(isNePal) = [] pi(U72) = [] pi(U71) = [2] pi(U62) = [] pi(U61) = [] pi(U53) = [] pi(U52) = [] pi(U51) = [3] pi(U43) = [] pi(U42) = [] pi(U41) = [] pi(isQid) = [] pi(U32) = [] pi(U31) = [] pi(U23) = [] pi(isList) = [] pi(U22) = [] pi(U21) = [] pi(isNeList) = [] pi(U12) = [] The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U53(X)) -> proper#(X) p8: proper#(U52(X1,X2)) -> proper#(X2) p9: proper#(U52(X1,X2)) -> proper#(X1) p10: proper#(U51(X1,X2,X3)) -> proper#(X3) p11: proper#(U51(X1,X2,X3)) -> proper#(X2) p12: proper#(U51(X1,X2,X3)) -> proper#(X1) p13: proper#(U43(X)) -> proper#(X) p14: proper#(U42(X1,X2)) -> proper#(X2) p15: proper#(U42(X1,X2)) -> proper#(X1) p16: proper#(U41(X1,X2,X3)) -> proper#(X3) p17: proper#(U41(X1,X2,X3)) -> proper#(X2) p18: proper#(U41(X1,X2,X3)) -> proper#(X1) p19: proper#(isQid(X)) -> proper#(X) p20: proper#(U32(X)) -> proper#(X) p21: proper#(U31(X1,X2)) -> proper#(X2) p22: proper#(U31(X1,X2)) -> proper#(X1) p23: proper#(U23(X)) -> proper#(X) p24: proper#(isList(X)) -> proper#(X) p25: proper#(U22(X1,X2)) -> proper#(X2) p26: proper#(U22(X1,X2)) -> proper#(X1) p27: proper#(U21(X1,X2,X3)) -> proper#(X2) p28: proper#(U21(X1,X2,X3)) -> proper#(X1) p29: proper#(isNeList(X)) -> proper#(X) p30: proper#(U12(X)) -> proper#(X) p31: proper#(U11(X1,X2)) -> proper#(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, p2, p3, p4, p5, 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U22(X1,X2)) -> proper#(X1) p8: proper#(U22(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> proper#(X) p10: proper#(U23(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X1) p12: proper#(U31(X1,X2)) -> proper#(X2) p13: proper#(U32(X)) -> proper#(X) p14: proper#(isQid(X)) -> proper#(X) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(U41(X1,X2,X3)) -> proper#(X2) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U42(X1,X2)) -> proper#(X2) p20: proper#(U43(X)) -> proper#(X) p21: proper#(U51(X1,X2,X3)) -> proper#(X1) p22: proper#(U51(X1,X2,X3)) -> proper#(X2) p23: proper#(U51(X1,X2,X3)) -> proper#(X3) p24: proper#(U52(X1,X2)) -> proper#(X1) p25: proper#(U52(X1,X2)) -> proper#(X2) p26: proper#(U53(X)) -> proper#(X) p27: proper#(U62(X)) -> proper#(X) p28: proper#(U71(X1,X2)) -> proper#(X1) p29: proper#(U71(X1,X2)) -> proper#(X2) p30: proper#(U72(X)) -> proper#(X) p31: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 + (1,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,1) isNeList_A(x1) = x1 + (2,1) U21_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U22_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) isList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U23_A(x1) = x1 + (2,1) U31_A(x1,x2) = x1 + x2 + (2,1) U32_A(x1) = x1 + (2,1) isQid_A(x1) = x1 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,1) U43_A(x1) = x1 + (2,3) U51_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) U52_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) isNePal_A(x1) = x1 + (2,3) precedence: isNeList > U12 > U72 > U43 > isNePal > U21 > U31 > isList = U23 = isQid > U41 > U42 > U22 > U32 > U51 > U71 > U62 > proper# = U11 > U52 > U53 partial status: pi(proper#) = [1] pi(U11) = [1, 2] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [2] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(isQid) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(isNePal) = [1] The next rules are strictly ordered: p19 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U22(X1,X2)) -> proper#(X1) p8: proper#(U22(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> proper#(X) p10: proper#(U23(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X1) p12: proper#(U31(X1,X2)) -> proper#(X2) p13: proper#(U32(X)) -> proper#(X) p14: proper#(isQid(X)) -> proper#(X) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(U41(X1,X2,X3)) -> proper#(X2) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U43(X)) -> proper#(X) p20: proper#(U51(X1,X2,X3)) -> proper#(X1) p21: proper#(U51(X1,X2,X3)) -> proper#(X2) p22: proper#(U51(X1,X2,X3)) -> proper#(X3) p23: proper#(U52(X1,X2)) -> proper#(X1) p24: proper#(U52(X1,X2)) -> proper#(X2) p25: proper#(U53(X)) -> proper#(X) p26: proper#(U62(X)) -> proper#(X) p27: proper#(U71(X1,X2)) -> proper#(X1) p28: proper#(U71(X1,X2)) -> proper#(X2) p29: proper#(U72(X)) -> proper#(X) p30: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U53(X)) -> proper#(X) p8: proper#(U52(X1,X2)) -> proper#(X2) p9: proper#(U52(X1,X2)) -> proper#(X1) p10: proper#(U51(X1,X2,X3)) -> proper#(X3) p11: proper#(U51(X1,X2,X3)) -> proper#(X2) p12: proper#(U51(X1,X2,X3)) -> proper#(X1) p13: proper#(U43(X)) -> proper#(X) p14: proper#(U42(X1,X2)) -> proper#(X1) p15: proper#(U41(X1,X2,X3)) -> proper#(X3) p16: proper#(U41(X1,X2,X3)) -> proper#(X2) p17: proper#(U41(X1,X2,X3)) -> proper#(X1) p18: proper#(isQid(X)) -> proper#(X) p19: proper#(U32(X)) -> proper#(X) p20: proper#(U31(X1,X2)) -> proper#(X2) p21: proper#(U31(X1,X2)) -> proper#(X1) p22: proper#(U23(X)) -> proper#(X) p23: proper#(isList(X)) -> proper#(X) p24: proper#(U22(X1,X2)) -> proper#(X2) p25: proper#(U22(X1,X2)) -> proper#(X1) p26: proper#(U21(X1,X2,X3)) -> proper#(X2) p27: proper#(U21(X1,X2,X3)) -> proper#(X1) p28: proper#(isNeList(X)) -> proper#(X) p29: proper#(U12(X)) -> proper#(X) p30: proper#(U11(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,1) isNePal_A(x1) = x1 + (1,1) U72_A(x1) = ((1,0),(1,1)) x1 + (3,3) U71_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,3) U62_A(x1) = ((1,0),(1,1)) x1 + (3,3) U53_A(x1) = ((1,0),(0,0)) x1 + (3,1) U52_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,1) U51_A(x1,x2,x3) = x1 + x2 + ((1,0),(0,0)) x3 + (3,1) U43_A(x1) = ((1,0),(1,1)) x1 + (3,1) U42_A(x1,x2) = x1 + (1,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + ((1,0),(0,0)) x3 + (3,1) isQid_A(x1) = x1 + (3,1) U32_A(x1) = ((1,0),(0,0)) x1 + (3,3) U31_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) U23_A(x1) = ((1,0),(0,0)) x1 + (3,3) isList_A(x1) = ((1,0),(0,0)) x1 + (3,3) U22_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,3) U21_A(x1,x2,x3) = x1 + x2 + x3 + (3,3) isNeList_A(x1) = x1 + (3,3) U12_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: proper# = U72 = isQid = U23 > isNePal > U71 > U62 > U53 = U52 > U22 > U51 > U12 > U43 > U42 = U31 > U21 > U11 > U32 > U41 = isList = isNeList partial status: pi(proper#) = [] pi(U11) = [] pi(isNePal) = [] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U53) = [] pi(U52) = [] pi(U51) = [] pi(U43) = [] pi(U42) = [] pi(U41) = [] pi(isQid) = [] pi(U32) = [] pi(U31) = [2] pi(U23) = [] pi(isList) = [] pi(U22) = [] pi(U21) = [3] pi(isNeList) = [] pi(U12) = [] The next rules are strictly ordered: p9 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U53(X)) -> proper#(X) p8: proper#(U52(X1,X2)) -> proper#(X2) p9: proper#(U51(X1,X2,X3)) -> proper#(X3) p10: proper#(U51(X1,X2,X3)) -> proper#(X2) p11: proper#(U51(X1,X2,X3)) -> proper#(X1) p12: proper#(U43(X)) -> proper#(X) p13: proper#(U42(X1,X2)) -> proper#(X1) p14: proper#(U41(X1,X2,X3)) -> proper#(X3) p15: proper#(U41(X1,X2,X3)) -> proper#(X2) p16: proper#(U41(X1,X2,X3)) -> proper#(X1) p17: proper#(isQid(X)) -> proper#(X) p18: proper#(U32(X)) -> proper#(X) p19: proper#(U31(X1,X2)) -> proper#(X2) p20: proper#(U31(X1,X2)) -> proper#(X1) p21: proper#(U23(X)) -> proper#(X) p22: proper#(isList(X)) -> proper#(X) p23: proper#(U22(X1,X2)) -> proper#(X2) p24: proper#(U22(X1,X2)) -> proper#(X1) p25: proper#(U21(X1,X2,X3)) -> proper#(X2) p26: proper#(U21(X1,X2,X3)) -> proper#(X1) p27: proper#(isNeList(X)) -> proper#(X) p28: proper#(U12(X)) -> proper#(X) p29: proper#(U11(X1,X2)) -> proper#(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U22(X1,X2)) -> proper#(X1) p8: proper#(U22(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> proper#(X) p10: proper#(U23(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X1) p12: proper#(U31(X1,X2)) -> proper#(X2) p13: proper#(U32(X)) -> proper#(X) p14: proper#(isQid(X)) -> proper#(X) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(U41(X1,X2,X3)) -> proper#(X2) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U43(X)) -> proper#(X) p20: proper#(U51(X1,X2,X3)) -> proper#(X1) p21: proper#(U51(X1,X2,X3)) -> proper#(X2) p22: proper#(U51(X1,X2,X3)) -> proper#(X3) p23: proper#(U52(X1,X2)) -> proper#(X2) p24: proper#(U53(X)) -> proper#(X) p25: proper#(U62(X)) -> proper#(X) p26: proper#(U71(X1,X2)) -> proper#(X1) p27: proper#(U71(X1,X2)) -> proper#(X2) p28: proper#(U72(X)) -> proper#(X) p29: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U11_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) U12_A(x1) = x1 + (2,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (2,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) isList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U23_A(x1) = ((1,0),(1,1)) x1 + (2,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U32_A(x1) = ((1,0),(1,1)) x1 + (2,3) isQid_A(x1) = x1 + (2,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U42_A(x1,x2) = x1 + (2,3) U43_A(x1) = x1 + (2,1) U51_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) U52_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U53_A(x1) = x1 + (2,3) U62_A(x1) = x1 + (2,3) U71_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,3) precedence: U72 > U71 > U12 = U53 > isNeList > U11 > U23 = U31 = U62 > proper# = U32 = U41 = U42 > U21 = isNePal > U22 = isList = U43 = U51 > isQid > U52 partial status: pi(proper#) = [1] pi(U11) = [] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [1, 2] pi(isList) = [1] pi(U23) = [1] pi(U31) = [1, 2] pi(U32) = [1] pi(isQid) = [] pi(U41) = [2, 3] pi(U42) = [1] pi(U43) = [1] pi(U51) = [1, 2, 3] pi(U52) = [] pi(U53) = [] pi(U62) = [1] pi(U71) = [1, 2] pi(U72) = [1] pi(isNePal) = [1] The next rules are strictly ordered: p23 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U11(X1,X2)) -> proper#(X2) p3: proper#(U12(X)) -> proper#(X) p4: proper#(isNeList(X)) -> proper#(X) p5: proper#(U21(X1,X2,X3)) -> proper#(X1) p6: proper#(U21(X1,X2,X3)) -> proper#(X2) p7: proper#(U22(X1,X2)) -> proper#(X1) p8: proper#(U22(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> proper#(X) p10: proper#(U23(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X1) p12: proper#(U31(X1,X2)) -> proper#(X2) p13: proper#(U32(X)) -> proper#(X) p14: proper#(isQid(X)) -> proper#(X) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(U41(X1,X2,X3)) -> proper#(X2) p17: proper#(U41(X1,X2,X3)) -> proper#(X3) p18: proper#(U42(X1,X2)) -> proper#(X1) p19: proper#(U43(X)) -> proper#(X) p20: proper#(U51(X1,X2,X3)) -> proper#(X1) p21: proper#(U51(X1,X2,X3)) -> proper#(X2) p22: proper#(U51(X1,X2,X3)) -> proper#(X3) p23: proper#(U53(X)) -> proper#(X) p24: proper#(U62(X)) -> proper#(X) p25: proper#(U71(X1,X2)) -> proper#(X1) p26: proper#(U71(X1,X2)) -> proper#(X2) p27: proper#(U72(X)) -> proper#(X) p28: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U53(X)) -> proper#(X) p8: proper#(U51(X1,X2,X3)) -> proper#(X3) p9: proper#(U51(X1,X2,X3)) -> proper#(X2) p10: proper#(U51(X1,X2,X3)) -> proper#(X1) p11: proper#(U43(X)) -> proper#(X) p12: proper#(U42(X1,X2)) -> proper#(X1) p13: proper#(U41(X1,X2,X3)) -> proper#(X3) p14: proper#(U41(X1,X2,X3)) -> proper#(X2) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(isQid(X)) -> proper#(X) p17: proper#(U32(X)) -> proper#(X) p18: proper#(U31(X1,X2)) -> proper#(X2) p19: proper#(U31(X1,X2)) -> proper#(X1) p20: proper#(U23(X)) -> proper#(X) p21: proper#(isList(X)) -> proper#(X) p22: proper#(U22(X1,X2)) -> proper#(X2) p23: proper#(U22(X1,X2)) -> proper#(X1) p24: proper#(U21(X1,X2,X3)) -> proper#(X2) p25: proper#(U21(X1,X2,X3)) -> proper#(X1) p26: proper#(isNeList(X)) -> proper#(X) p27: proper#(U12(X)) -> proper#(X) p28: proper#(U11(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) isNePal_A(x1) = ((1,0),(1,1)) x1 + (2,1) U72_A(x1) = x1 + (2,1) U71_A(x1,x2) = x1 + x2 + (2,1) U62_A(x1) = ((1,0),(1,1)) x1 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,3) U43_A(x1) = ((1,0),(1,1)) x1 + (2,3) U42_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) isQid_A(x1) = x1 + (2,3) U32_A(x1) = x1 + (2,3) U31_A(x1,x2) = x1 + x2 + (2,3) U23_A(x1) = x1 + (2,3) isList_A(x1) = x1 + (2,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U21_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U12_A(x1) = ((1,0),(0,0)) x1 + (2,3) precedence: U11 = isNePal = U32 > U21 > isNeList > U12 > U72 > U71 > U53 > U51 > U43 > U42 = isQid > U31 > U23 > proper# = U41 > U62 > isList = U22 partial status: pi(proper#) = [1] pi(U11) = [] pi(isNePal) = [] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U53) = [] pi(U51) = [1, 2, 3] pi(U43) = [] pi(U42) = [1, 2] pi(U41) = [3] pi(isQid) = [1] pi(U32) = [] pi(U31) = [] pi(U23) = [] pi(isList) = [1] pi(U22) = [1] pi(U21) = [] pi(isNeList) = [1] pi(U12) = [] The next rules are strictly ordered: p28 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U71(X1,X2)) -> proper#(X1) p6: proper#(U62(X)) -> proper#(X) p7: proper#(U53(X)) -> proper#(X) p8: proper#(U51(X1,X2,X3)) -> proper#(X3) p9: proper#(U51(X1,X2,X3)) -> proper#(X2) p10: proper#(U51(X1,X2,X3)) -> proper#(X1) p11: proper#(U43(X)) -> proper#(X) p12: proper#(U42(X1,X2)) -> proper#(X1) p13: proper#(U41(X1,X2,X3)) -> proper#(X3) p14: proper#(U41(X1,X2,X3)) -> proper#(X2) p15: proper#(U41(X1,X2,X3)) -> proper#(X1) p16: proper#(isQid(X)) -> proper#(X) p17: proper#(U32(X)) -> proper#(X) p18: proper#(U31(X1,X2)) -> proper#(X2) p19: proper#(U31(X1,X2)) -> proper#(X1) p20: proper#(U23(X)) -> proper#(X) p21: proper#(isList(X)) -> proper#(X) p22: proper#(U22(X1,X2)) -> proper#(X2) p23: proper#(U22(X1,X2)) -> proper#(X1) p24: proper#(U21(X1,X2,X3)) -> proper#(X2) p25: proper#(U21(X1,X2,X3)) -> proper#(X1) p26: proper#(isNeList(X)) -> proper#(X) p27: proper#(U12(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X1) p7: proper#(U22(X1,X2)) -> proper#(X2) p8: proper#(isList(X)) -> proper#(X) p9: proper#(U23(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X1) p11: proper#(U31(X1,X2)) -> proper#(X2) p12: proper#(U32(X)) -> proper#(X) p13: proper#(isQid(X)) -> proper#(X) p14: proper#(U41(X1,X2,X3)) -> proper#(X1) p15: proper#(U41(X1,X2,X3)) -> proper#(X2) p16: proper#(U41(X1,X2,X3)) -> proper#(X3) p17: proper#(U42(X1,X2)) -> proper#(X1) p18: proper#(U43(X)) -> proper#(X) p19: proper#(U51(X1,X2,X3)) -> proper#(X1) p20: proper#(U51(X1,X2,X3)) -> proper#(X2) p21: proper#(U51(X1,X2,X3)) -> proper#(X3) p22: proper#(U53(X)) -> proper#(X) p23: proper#(U62(X)) -> proper#(X) p24: proper#(U71(X1,X2)) -> proper#(X1) p25: proper#(U71(X1,X2)) -> proper#(X2) p26: proper#(U72(X)) -> proper#(X) p27: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 + (1,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,1) U12_A(x1) = ((1,0),(1,1)) x1 + (2,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U21_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U22_A(x1,x2) = x1 + x2 + (2,1) isList_A(x1) = x1 + (2,1) U23_A(x1) = x1 + (2,1) U31_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) U32_A(x1) = x1 + (2,1) isQid_A(x1) = x1 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,3) U43_A(x1) = x1 + (2,3) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,3) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2) = x1 + x2 + (2,3) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) isNePal_A(x1) = ((1,0),(0,0)) x1 + (2,3) precedence: U12 > isNePal > U72 > U11 > U42 = U71 > isNeList > U62 > U32 > proper# = U22 = U43 > isList > U23 > U31 > isQid > U21 > U41 = U51 > U53 partial status: pi(proper#) = [1] pi(U11) = [] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [2] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(U32) = [] pi(isQid) = [] pi(U41) = [3] pi(U42) = [1, 2] pi(U43) = [1] pi(U51) = [1, 2, 3] pi(U53) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [1] pi(isNePal) = [] The next rules are strictly ordered: p24 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X1) p7: proper#(U22(X1,X2)) -> proper#(X2) p8: proper#(isList(X)) -> proper#(X) p9: proper#(U23(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X1) p11: proper#(U31(X1,X2)) -> proper#(X2) p12: proper#(U32(X)) -> proper#(X) p13: proper#(isQid(X)) -> proper#(X) p14: proper#(U41(X1,X2,X3)) -> proper#(X1) p15: proper#(U41(X1,X2,X3)) -> proper#(X2) p16: proper#(U41(X1,X2,X3)) -> proper#(X3) p17: proper#(U42(X1,X2)) -> proper#(X1) p18: proper#(U43(X)) -> proper#(X) p19: proper#(U51(X1,X2,X3)) -> proper#(X1) p20: proper#(U51(X1,X2,X3)) -> proper#(X2) p21: proper#(U51(X1,X2,X3)) -> proper#(X3) p22: proper#(U53(X)) -> proper#(X) p23: proper#(U62(X)) -> proper#(X) p24: proper#(U71(X1,X2)) -> proper#(X2) p25: proper#(U72(X)) -> proper#(X) p26: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U51(X1,X2,X3)) -> proper#(X2) p9: proper#(U51(X1,X2,X3)) -> proper#(X1) p10: proper#(U43(X)) -> proper#(X) p11: proper#(U42(X1,X2)) -> proper#(X1) p12: proper#(U41(X1,X2,X3)) -> proper#(X3) p13: proper#(U41(X1,X2,X3)) -> proper#(X2) p14: proper#(U41(X1,X2,X3)) -> proper#(X1) p15: proper#(isQid(X)) -> proper#(X) p16: proper#(U32(X)) -> proper#(X) p17: proper#(U31(X1,X2)) -> proper#(X2) p18: proper#(U31(X1,X2)) -> proper#(X1) p19: proper#(U23(X)) -> proper#(X) p20: proper#(isList(X)) -> proper#(X) p21: proper#(U22(X1,X2)) -> proper#(X2) p22: proper#(U22(X1,X2)) -> proper#(X1) p23: proper#(U21(X1,X2,X3)) -> proper#(X2) p24: proper#(U21(X1,X2,X3)) -> proper#(X1) p25: proper#(isNeList(X)) -> proper#(X) p26: proper#(U12(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 U11_A(x1,x2) = x1 + (1,1) isNePal_A(x1) = ((1,0),(1,0)) x1 + (1,1) U72_A(x1) = ((1,0),(1,1)) x1 + (1,1) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (1,1) U62_A(x1) = ((1,0),(1,1)) x1 + (1,1) U53_A(x1) = ((1,0),(1,1)) x1 + (1,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + ((1,0),(1,1)) x3 + (1,1) U43_A(x1) = ((1,0),(1,1)) x1 + (1,1) U42_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U41_A(x1,x2,x3) = x1 + x2 + ((1,0),(0,0)) x3 + (1,1) isQid_A(x1) = x1 + (1,1) U32_A(x1) = ((1,0),(0,0)) x1 + (1,1) U31_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (1,1) U23_A(x1) = ((1,0),(0,0)) x1 + (1,1) isList_A(x1) = ((1,0),(0,0)) x1 + (1,1) U22_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (1,1) U21_A(x1,x2,x3) = x1 + x2 + x3 + (1,1) isNeList_A(x1) = ((1,0),(0,0)) x1 + (1,1) U12_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isNePal > U11 > U12 > U43 > isNeList > U71 > U53 = U51 > U62 > isList > U23 > U22 > U21 > U72 > proper# = U42 = U41 = isQid = U32 = U31 partial status: pi(proper#) = [] pi(U11) = [] pi(isNePal) = [] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U53) = [1] pi(U51) = [3] pi(U43) = [] pi(U42) = [2] pi(U41) = [2] pi(isQid) = [1] pi(U32) = [] pi(U31) = [1] pi(U23) = [] pi(isList) = [] pi(U22) = [] pi(U21) = [] pi(isNeList) = [] pi(U12) = [] The next rules are strictly ordered: p18 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U51(X1,X2,X3)) -> proper#(X2) p9: proper#(U51(X1,X2,X3)) -> proper#(X1) p10: proper#(U43(X)) -> proper#(X) p11: proper#(U42(X1,X2)) -> proper#(X1) p12: proper#(U41(X1,X2,X3)) -> proper#(X3) p13: proper#(U41(X1,X2,X3)) -> proper#(X2) p14: proper#(U41(X1,X2,X3)) -> proper#(X1) p15: proper#(isQid(X)) -> proper#(X) p16: proper#(U32(X)) -> proper#(X) p17: proper#(U31(X1,X2)) -> proper#(X2) p18: proper#(U23(X)) -> proper#(X) p19: proper#(isList(X)) -> proper#(X) p20: proper#(U22(X1,X2)) -> proper#(X2) p21: proper#(U22(X1,X2)) -> proper#(X1) p22: proper#(U21(X1,X2,X3)) -> proper#(X2) p23: proper#(U21(X1,X2,X3)) -> proper#(X1) p24: proper#(isNeList(X)) -> proper#(X) p25: proper#(U12(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X1) p7: proper#(U22(X1,X2)) -> proper#(X2) p8: proper#(isList(X)) -> proper#(X) p9: proper#(U23(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X2) p11: proper#(U32(X)) -> proper#(X) p12: proper#(isQid(X)) -> proper#(X) p13: proper#(U41(X1,X2,X3)) -> proper#(X1) p14: proper#(U41(X1,X2,X3)) -> proper#(X2) p15: proper#(U41(X1,X2,X3)) -> proper#(X3) p16: proper#(U42(X1,X2)) -> proper#(X1) p17: proper#(U43(X)) -> proper#(X) p18: proper#(U51(X1,X2,X3)) -> proper#(X1) p19: proper#(U51(X1,X2,X3)) -> proper#(X2) p20: proper#(U51(X1,X2,X3)) -> proper#(X3) p21: proper#(U53(X)) -> proper#(X) p22: proper#(U62(X)) -> proper#(X) p23: proper#(U71(X1,X2)) -> proper#(X2) p24: proper#(U72(X)) -> proper#(X) p25: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 + (0,1) U11_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,2) U12_A(x1) = ((1,0),(1,1)) x1 + (1,2) isNeList_A(x1) = ((1,0),(1,1)) x1 + (1,2) U21_A(x1,x2,x3) = x1 + x2 + (1,2) U22_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,2) isList_A(x1) = x1 + (1,2) U23_A(x1) = x1 + (1,2) U31_A(x1,x2) = x1 + x2 + (1,2) U32_A(x1) = x1 + (1,2) isQid_A(x1) = x1 + (1,2) U41_A(x1,x2,x3) = x1 + x2 + x3 + (1,2) U42_A(x1,x2) = x1 + x2 + (1,2) U43_A(x1) = x1 + (1,1) U51_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + x3 + (1,2) U53_A(x1) = x1 + (1,2) U62_A(x1) = x1 + (1,2) U71_A(x1,x2) = x2 + (1,2) U72_A(x1) = x1 + (1,2) isNePal_A(x1) = x1 + (1,2) precedence: U11 > isNePal > U71 > U41 > proper# = U23 > U62 > U12 > U31 = U53 > U22 > U72 > isNeList = U21 = isList = isQid = U42 = U43 = U51 > U32 partial status: pi(proper#) = [1] pi(U11) = [1, 2] pi(U12) = [1] pi(isNeList) = [1] pi(U21) = [1, 2] pi(U22) = [2] pi(isList) = [] pi(U23) = [1] pi(U31) = [2] pi(U32) = [] pi(isQid) = [1] pi(U41) = [2, 3] pi(U42) = [1, 2] pi(U43) = [1] pi(U51) = [1, 3] pi(U53) = [] pi(U62) = [] pi(U71) = [2] pi(U72) = [1] pi(isNePal) = [1] The next rules are strictly ordered: p19 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X1) p7: proper#(U22(X1,X2)) -> proper#(X2) p8: proper#(isList(X)) -> proper#(X) p9: proper#(U23(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X2) p11: proper#(U32(X)) -> proper#(X) p12: proper#(isQid(X)) -> proper#(X) p13: proper#(U41(X1,X2,X3)) -> proper#(X1) p14: proper#(U41(X1,X2,X3)) -> proper#(X2) p15: proper#(U41(X1,X2,X3)) -> proper#(X3) p16: proper#(U42(X1,X2)) -> proper#(X1) p17: proper#(U43(X)) -> proper#(X) p18: proper#(U51(X1,X2,X3)) -> proper#(X1) p19: proper#(U51(X1,X2,X3)) -> proper#(X3) p20: proper#(U53(X)) -> proper#(X) p21: proper#(U62(X)) -> proper#(X) p22: proper#(U71(X1,X2)) -> proper#(X2) p23: proper#(U72(X)) -> proper#(X) p24: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U51(X1,X2,X3)) -> proper#(X1) p9: proper#(U43(X)) -> proper#(X) p10: proper#(U42(X1,X2)) -> proper#(X1) p11: proper#(U41(X1,X2,X3)) -> proper#(X3) p12: proper#(U41(X1,X2,X3)) -> proper#(X2) p13: proper#(U41(X1,X2,X3)) -> proper#(X1) p14: proper#(isQid(X)) -> proper#(X) p15: proper#(U32(X)) -> proper#(X) p16: proper#(U31(X1,X2)) -> proper#(X2) p17: proper#(U23(X)) -> proper#(X) p18: proper#(isList(X)) -> proper#(X) p19: proper#(U22(X1,X2)) -> proper#(X2) p20: proper#(U22(X1,X2)) -> proper#(X1) p21: proper#(U21(X1,X2,X3)) -> proper#(X2) p22: proper#(U21(X1,X2,X3)) -> proper#(X1) p23: proper#(isNeList(X)) -> proper#(X) p24: proper#(U12(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = x1 + x2 + (3,3) isNePal_A(x1) = x1 + (3,1) U72_A(x1) = x1 + (1,1) U71_A(x1,x2) = x1 + x2 + (1,1) U62_A(x1) = x1 + (1,1) U53_A(x1) = x1 + (1,1) U51_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x3 + (3,3) U43_A(x1) = x1 + (1,1) U42_A(x1,x2) = x1 + x2 + (3,3) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + ((1,0),(0,0)) x3 + (3,1) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,1) U32_A(x1) = x1 + (3,1) U31_A(x1,x2) = ((1,0),(1,1)) x2 + (3,1) U23_A(x1) = x1 + (3,3) isList_A(x1) = ((1,0),(0,0)) x1 + (3,3) U22_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,3) U21_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (3,3) isNeList_A(x1) = x1 + (3,3) U12_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: proper# > U21 > isNeList > U22 > U12 > U11 > isNePal = U71 = U62 = U51 = isList > U72 = U53 = U43 = U42 = U32 = U23 > U41 = U31 > isQid partial status: pi(proper#) = [] pi(U11) = [1, 2] pi(isNePal) = [] pi(U72) = [1] pi(U71) = [2] pi(U62) = [1] pi(U53) = [1] pi(U51) = [3] pi(U43) = [] pi(U42) = [] pi(U41) = [] pi(isQid) = [] pi(U32) = [1] pi(U31) = [2] pi(U23) = [1] pi(isList) = [] pi(U22) = [] pi(U21) = [2, 3] pi(isNeList) = [] pi(U12) = [] The next rules are strictly ordered: p11 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U51(X1,X2,X3)) -> proper#(X1) p9: proper#(U43(X)) -> proper#(X) p10: proper#(U42(X1,X2)) -> proper#(X1) p11: proper#(U41(X1,X2,X3)) -> proper#(X2) p12: proper#(U41(X1,X2,X3)) -> proper#(X1) p13: proper#(isQid(X)) -> proper#(X) p14: proper#(U32(X)) -> proper#(X) p15: proper#(U31(X1,X2)) -> proper#(X2) p16: proper#(U23(X)) -> proper#(X) p17: proper#(isList(X)) -> proper#(X) p18: proper#(U22(X1,X2)) -> proper#(X2) p19: proper#(U22(X1,X2)) -> proper#(X1) p20: proper#(U21(X1,X2,X3)) -> proper#(X2) p21: proper#(U21(X1,X2,X3)) -> proper#(X1) p22: proper#(isNeList(X)) -> proper#(X) p23: proper#(U12(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X1) p7: proper#(U22(X1,X2)) -> proper#(X2) p8: proper#(isList(X)) -> proper#(X) p9: proper#(U23(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X2) p11: proper#(U32(X)) -> proper#(X) p12: proper#(isQid(X)) -> proper#(X) p13: proper#(U41(X1,X2,X3)) -> proper#(X1) p14: proper#(U41(X1,X2,X3)) -> proper#(X2) p15: proper#(U42(X1,X2)) -> proper#(X1) p16: proper#(U43(X)) -> proper#(X) p17: proper#(U51(X1,X2,X3)) -> proper#(X1) p18: proper#(U51(X1,X2,X3)) -> proper#(X3) p19: proper#(U53(X)) -> proper#(X) p20: proper#(U62(X)) -> proper#(X) p21: proper#(U71(X1,X2)) -> proper#(X2) p22: proper#(U72(X)) -> proper#(X) p23: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U11_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + (2,1) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) isList_A(x1) = x1 + (2,1) U23_A(x1) = ((1,0),(1,1)) x1 + (2,1) U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) U32_A(x1) = ((1,0),(1,1)) x1 + (2,1) isQid_A(x1) = ((1,0),(1,1)) x1 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) U42_A(x1,x2) = x1 + x2 + (2,3) U43_A(x1) = x1 + (2,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (2,1) U53_A(x1) = x1 + (2,3) U62_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2) = x1 + x2 + (2,3) U72_A(x1) = x1 + (2,3) isNePal_A(x1) = x1 + (2,3) precedence: U53 > U42 = U51 = U72 > proper# = U41 = U71 > U11 = U62 > U12 = isNeList = U21 = U22 = isList = U31 > U23 = U32 > isQid = U43 = isNePal partial status: pi(proper#) = [1] pi(U11) = [2] pi(U12) = [1] pi(isNeList) = [1] pi(U21) = [2] pi(U22) = [2] pi(isList) = [1] pi(U23) = [] pi(U31) = [2] pi(U32) = [1] pi(isQid) = [] pi(U41) = [2, 3] pi(U42) = [2] pi(U43) = [1] pi(U51) = [3] pi(U53) = [1] pi(U62) = [1] pi(U71) = [2] pi(U72) = [1] pi(isNePal) = [] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X2) p7: proper#(isList(X)) -> proper#(X) p8: proper#(U23(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(U32(X)) -> proper#(X) p11: proper#(isQid(X)) -> proper#(X) p12: proper#(U41(X1,X2,X3)) -> proper#(X1) p13: proper#(U41(X1,X2,X3)) -> proper#(X2) p14: proper#(U42(X1,X2)) -> proper#(X1) p15: proper#(U43(X)) -> proper#(X) p16: proper#(U51(X1,X2,X3)) -> proper#(X1) p17: proper#(U51(X1,X2,X3)) -> proper#(X3) p18: proper#(U53(X)) -> proper#(X) p19: proper#(U62(X)) -> proper#(X) p20: proper#(U71(X1,X2)) -> proper#(X2) p21: proper#(U72(X)) -> proper#(X) p22: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U51(X1,X2,X3)) -> proper#(X1) p9: proper#(U43(X)) -> proper#(X) p10: proper#(U42(X1,X2)) -> proper#(X1) p11: proper#(U41(X1,X2,X3)) -> proper#(X2) p12: proper#(U41(X1,X2,X3)) -> proper#(X1) p13: proper#(isQid(X)) -> proper#(X) p14: proper#(U32(X)) -> proper#(X) p15: proper#(U31(X1,X2)) -> proper#(X2) p16: proper#(U23(X)) -> proper#(X) p17: proper#(isList(X)) -> proper#(X) p18: proper#(U22(X1,X2)) -> proper#(X2) p19: proper#(U21(X1,X2,X3)) -> proper#(X2) p20: proper#(U21(X1,X2,X3)) -> proper#(X1) p21: proper#(isNeList(X)) -> proper#(X) p22: proper#(U12(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = x1 + x2 + (1,1) isNePal_A(x1) = x1 + (3,1) U72_A(x1) = ((1,0),(1,1)) x1 + (3,1) U71_A(x1,x2) = x1 + x2 + (1,1) U62_A(x1) = x1 + (3,1) U53_A(x1) = ((1,0),(1,1)) x1 + (3,1) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x3 + (3,1) U43_A(x1) = ((1,0),(0,0)) x1 + (1,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,1) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + x3 + (3,1) isQid_A(x1) = x1 + (3,3) U32_A(x1) = ((1,0),(0,0)) x1 + (3,1) U31_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,1) U23_A(x1) = ((1,0),(0,0)) x1 + (3,1) isList_A(x1) = ((1,0),(0,0)) x1 + (3,1) U22_A(x1,x2) = ((1,0),(1,1)) x2 + (3,3) U21_A(x1,x2,x3) = x1 + x2 + x3 + (3,3) isNeList_A(x1) = x1 + (3,3) U12_A(x1) = x1 + (3,3) precedence: isList > U21 > U22 > U12 > U23 > U71 = U51 > proper# = U31 = isNeList > U11 = isNePal = U72 = U62 = U43 = U42 > U53 > U41 = isQid = U32 partial status: pi(proper#) = [] pi(U11) = [2] pi(isNePal) = [1] pi(U72) = [1] pi(U71) = [2] pi(U62) = [1] pi(U53) = [1] pi(U51) = [3] pi(U43) = [] pi(U42) = [2] pi(U41) = [3] pi(isQid) = [1] pi(U32) = [] pi(U31) = [] pi(U23) = [] pi(isList) = [] pi(U22) = [2] pi(U21) = [3] pi(isNeList) = [] pi(U12) = [] The next rules are strictly ordered: p9 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U51(X1,X2,X3)) -> proper#(X1) p9: proper#(U42(X1,X2)) -> proper#(X1) p10: proper#(U41(X1,X2,X3)) -> proper#(X2) p11: proper#(U41(X1,X2,X3)) -> proper#(X1) p12: proper#(isQid(X)) -> proper#(X) p13: proper#(U32(X)) -> proper#(X) p14: proper#(U31(X1,X2)) -> proper#(X2) p15: proper#(U23(X)) -> proper#(X) p16: proper#(isList(X)) -> proper#(X) p17: proper#(U22(X1,X2)) -> proper#(X2) p18: proper#(U21(X1,X2,X3)) -> proper#(X2) p19: proper#(U21(X1,X2,X3)) -> proper#(X1) p20: proper#(isNeList(X)) -> proper#(X) p21: proper#(U12(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X2) p7: proper#(isList(X)) -> proper#(X) p8: proper#(U23(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(U32(X)) -> proper#(X) p11: proper#(isQid(X)) -> proper#(X) p12: proper#(U41(X1,X2,X3)) -> proper#(X1) p13: proper#(U41(X1,X2,X3)) -> proper#(X2) p14: proper#(U42(X1,X2)) -> proper#(X1) p15: proper#(U51(X1,X2,X3)) -> proper#(X1) p16: proper#(U51(X1,X2,X3)) -> proper#(X3) p17: proper#(U53(X)) -> proper#(X) p18: proper#(U62(X)) -> proper#(X) p19: proper#(U71(X1,X2)) -> proper#(X2) p20: proper#(U72(X)) -> proper#(X) p21: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U11_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,3) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U22_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (2,1) isList_A(x1) = ((1,0),(1,1)) x1 + (2,3) U23_A(x1) = x1 + (2,1) U31_A(x1,x2) = x1 + x2 + (2,1) U32_A(x1) = ((1,0),(1,1)) x1 + (2,1) isQid_A(x1) = x1 + (2,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,3) U51_A(x1,x2,x3) = x1 + x2 + ((1,0),(1,1)) x3 + (2,3) U53_A(x1) = ((1,0),(1,1)) x1 + (2,1) U62_A(x1) = x1 + (2,3) U71_A(x1,x2) = x1 + x2 + (2,3) U72_A(x1) = x1 + (2,3) isNePal_A(x1) = x1 + (2,3) precedence: U31 > U53 > U62 > U71 > U51 = U72 > U32 > U12 = isQid = U42 > U41 > proper# > isNeList = U21 = isList > U11 = U23 > U22 = isNePal partial status: pi(proper#) = [1] pi(U11) = [1, 2] pi(U12) = [1] pi(isNeList) = [1] pi(U21) = [2, 3] pi(U22) = [2] pi(isList) = [1] pi(U23) = [1] pi(U31) = [2] pi(U32) = [1] pi(isQid) = [1] pi(U41) = [2, 3] pi(U42) = [2] pi(U51) = [1, 3] pi(U53) = [1] pi(U62) = [] pi(U71) = [2] pi(U72) = [] pi(isNePal) = [] The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X2) p7: proper#(isList(X)) -> proper#(X) p8: proper#(U23(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(U32(X)) -> proper#(X) p11: proper#(isQid(X)) -> proper#(X) p12: proper#(U41(X1,X2,X3)) -> proper#(X1) p13: proper#(U41(X1,X2,X3)) -> proper#(X2) p14: proper#(U42(X1,X2)) -> proper#(X1) p15: proper#(U51(X1,X2,X3)) -> proper#(X3) p16: proper#(U53(X)) -> proper#(X) p17: proper#(U62(X)) -> proper#(X) p18: proper#(U71(X1,X2)) -> proper#(X2) p19: proper#(U72(X)) -> proper#(X) p20: proper#(isNePal(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U42(X1,X2)) -> proper#(X1) p9: proper#(U41(X1,X2,X3)) -> proper#(X2) p10: proper#(U41(X1,X2,X3)) -> proper#(X1) p11: proper#(isQid(X)) -> proper#(X) p12: proper#(U32(X)) -> proper#(X) p13: proper#(U31(X1,X2)) -> proper#(X2) p14: proper#(U23(X)) -> proper#(X) p15: proper#(isList(X)) -> proper#(X) p16: proper#(U22(X1,X2)) -> proper#(X2) p17: proper#(U21(X1,X2,X3)) -> proper#(X2) p18: proper#(U21(X1,X2,X3)) -> proper#(X1) p19: proper#(isNeList(X)) -> proper#(X) p20: proper#(U12(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + (3,3) isNePal_A(x1) = ((1,0),(1,1)) x1 + (3,1) U72_A(x1) = x1 + (1,1) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (3,3) U62_A(x1) = x1 + (3,1) U53_A(x1) = x1 + (1,1) U51_A(x1,x2,x3) = x1 + x2 + x3 + (1,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + (3,3) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (3,3) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,1) U32_A(x1) = ((1,0),(1,1)) x1 + (3,3) U31_A(x1,x2) = x2 + (3,1) U23_A(x1) = x1 + (3,1) isList_A(x1) = x1 + (3,1) U22_A(x1,x2) = x1 + x2 + (3,1) U21_A(x1,x2,x3) = x1 + ((1,0),(1,0)) x2 + x3 + (3,3) isNeList_A(x1) = x1 + (1,3) U12_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: U41 > U53 = U22 > isList > U21 > isNePal = U62 = U42 = isQid > U12 > proper# = U51 = U31 > U11 > U23 > U32 > U71 > U72 = isNeList partial status: pi(proper#) = [] pi(U11) = [1] pi(isNePal) = [1] pi(U72) = [1] pi(U71) = [2] pi(U62) = [1] pi(U53) = [] pi(U51) = [3] pi(U42) = [1] pi(U41) = [] pi(isQid) = [] pi(U32) = [] pi(U31) = [2] pi(U23) = [1] pi(isList) = [1] pi(U22) = [2] pi(U21) = [3] pi(isNeList) = [1] pi(U12) = [] The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(isNePal(X)) -> proper#(X) p3: proper#(U72(X)) -> proper#(X) p4: proper#(U71(X1,X2)) -> proper#(X2) p5: proper#(U62(X)) -> proper#(X) p6: proper#(U53(X)) -> proper#(X) p7: proper#(U51(X1,X2,X3)) -> proper#(X3) p8: proper#(U42(X1,X2)) -> proper#(X1) p9: proper#(U41(X1,X2,X3)) -> proper#(X2) p10: proper#(U41(X1,X2,X3)) -> proper#(X1) p11: proper#(isQid(X)) -> proper#(X) p12: proper#(U31(X1,X2)) -> proper#(X2) p13: proper#(U23(X)) -> proper#(X) p14: proper#(isList(X)) -> proper#(X) p15: proper#(U22(X1,X2)) -> proper#(X2) p16: proper#(U21(X1,X2,X3)) -> proper#(X2) p17: proper#(U21(X1,X2,X3)) -> proper#(X1) p18: proper#(isNeList(X)) -> proper#(X) p19: proper#(U12(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X2) p7: proper#(isList(X)) -> proper#(X) p8: proper#(U23(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(isQid(X)) -> proper#(X) p11: proper#(U41(X1,X2,X3)) -> proper#(X1) p12: proper#(U41(X1,X2,X3)) -> proper#(X2) p13: proper#(U42(X1,X2)) -> proper#(X1) p14: proper#(U51(X1,X2,X3)) -> proper#(X3) p15: proper#(U53(X)) -> proper#(X) p16: proper#(U62(X)) -> proper#(X) p17: proper#(U71(X1,X2)) -> proper#(X2) p18: proper#(U72(X)) -> proper#(X) p19: proper#(isNePal(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 + (2,1) U11_A(x1,x2) = x1 + (1,0) U12_A(x1) = x1 + (1,0) isNeList_A(x1) = x1 + (1,0) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (3,0) U22_A(x1,x2) = x1 + x2 + (1,0) isList_A(x1) = ((1,0),(1,1)) x1 + (3,0) U23_A(x1) = x1 + (3,0) U31_A(x1,x2) = x1 + x2 + (3,0) isQid_A(x1) = ((1,0),(1,1)) x1 + (3,0) U41_A(x1,x2,x3) = x1 + x2 + x3 + (3,0) U42_A(x1,x2) = x1 + x2 + (3,0) U51_A(x1,x2,x3) = x1 + x2 + x3 + (3,0) U53_A(x1) = x1 + (3,0) U62_A(x1) = x1 + (1,0) U71_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,0) U72_A(x1) = x1 + (3,0) isNePal_A(x1) = x1 + (3,0) precedence: U41 > U71 > U62 > U53 > U51 > U31 = U72 > U11 = U12 > U21 = U22 = isList = isQid > U42 > isNeList = U23 > proper# = isNePal partial status: pi(proper#) = [1] pi(U11) = [1] pi(U12) = [] pi(isNeList) = [] pi(U21) = [1] pi(U22) = [1] pi(isList) = [1] pi(U23) = [1] pi(U31) = [2] pi(isQid) = [1] pi(U41) = [1, 2] pi(U42) = [1] pi(U51) = [3] pi(U53) = [1] pi(U62) = [1] pi(U71) = [2] pi(U72) = [1] pi(isNePal) = [] The next rules are strictly ordered: p19 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U21(X1,X2,X3)) -> proper#(X2) p6: proper#(U22(X1,X2)) -> proper#(X2) p7: proper#(isList(X)) -> proper#(X) p8: proper#(U23(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(isQid(X)) -> proper#(X) p11: proper#(U41(X1,X2,X3)) -> proper#(X1) p12: proper#(U41(X1,X2,X3)) -> proper#(X2) p13: proper#(U42(X1,X2)) -> proper#(X1) p14: proper#(U51(X1,X2,X3)) -> proper#(X3) p15: proper#(U53(X)) -> proper#(X) p16: proper#(U62(X)) -> proper#(X) p17: proper#(U71(X1,X2)) -> proper#(X2) p18: proper#(U72(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U72(X)) -> proper#(X) p3: proper#(U71(X1,X2)) -> proper#(X2) p4: proper#(U62(X)) -> proper#(X) p5: proper#(U53(X)) -> proper#(X) p6: proper#(U51(X1,X2,X3)) -> proper#(X3) p7: proper#(U42(X1,X2)) -> proper#(X1) p8: proper#(U41(X1,X2,X3)) -> proper#(X2) p9: proper#(U41(X1,X2,X3)) -> proper#(X1) p10: proper#(isQid(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X2) p12: proper#(U23(X)) -> proper#(X) p13: proper#(isList(X)) -> proper#(X) p14: proper#(U22(X1,X2)) -> proper#(X2) p15: proper#(U21(X1,X2,X3)) -> proper#(X2) p16: proper#(U21(X1,X2,X3)) -> proper#(X1) p17: proper#(isNeList(X)) -> proper#(X) p18: proper#(U12(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + (3,3) U72_A(x1) = x1 + (3,3) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (3,1) U62_A(x1) = ((1,0),(1,1)) x1 + (3,1) U53_A(x1) = ((1,0),(1,1)) x1 + (3,0) U51_A(x1,x2,x3) = x1 + x3 + (3,0) U42_A(x1,x2) = x1 + (3,0) U41_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + x3 + (3,0) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,0) U31_A(x1,x2) = x1 + x2 + (3,0) U23_A(x1) = ((1,0),(0,0)) x1 + (3,0) isList_A(x1) = ((1,0),(1,0)) x1 + (3,3) U22_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,3) U21_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,0) isNeList_A(x1) = x1 + (3,3) U12_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U71 = U31 = isList = U22 = U21 > U42 = isNeList > U72 = U51 = isQid = U12 > U11 = U53 > proper# = U62 = U41 = U23 partial status: pi(proper#) = [] pi(U11) = [] pi(U72) = [1] pi(U71) = [] pi(U62) = [] pi(U53) = [1] pi(U51) = [3] pi(U42) = [1] pi(U41) = [3] pi(isQid) = [] pi(U31) = [] pi(U23) = [] pi(isList) = [] pi(U22) = [] pi(U21) = [] pi(isNeList) = [1] pi(U12) = [] The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U72(X)) -> proper#(X) p3: proper#(U71(X1,X2)) -> proper#(X2) p4: proper#(U62(X)) -> proper#(X) p5: proper#(U53(X)) -> proper#(X) p6: proper#(U51(X1,X2,X3)) -> proper#(X3) p7: proper#(U42(X1,X2)) -> proper#(X1) p8: proper#(U41(X1,X2,X3)) -> proper#(X2) p9: proper#(U41(X1,X2,X3)) -> proper#(X1) p10: proper#(isQid(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X2) p12: proper#(U23(X)) -> proper#(X) p13: proper#(isList(X)) -> proper#(X) p14: proper#(U22(X1,X2)) -> proper#(X2) p15: proper#(U21(X1,X2,X3)) -> proper#(X1) p16: proper#(isNeList(X)) -> proper#(X) p17: proper#(U12(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U11(X1,X2)) -> proper#(X1) p2: proper#(U12(X)) -> proper#(X) p3: proper#(isNeList(X)) -> proper#(X) p4: proper#(U21(X1,X2,X3)) -> proper#(X1) p5: proper#(U22(X1,X2)) -> proper#(X2) p6: proper#(isList(X)) -> proper#(X) p7: proper#(U23(X)) -> proper#(X) p8: proper#(U31(X1,X2)) -> proper#(X2) p9: proper#(isQid(X)) -> proper#(X) p10: proper#(U41(X1,X2,X3)) -> proper#(X1) p11: proper#(U41(X1,X2,X3)) -> proper#(X2) p12: proper#(U42(X1,X2)) -> proper#(X1) p13: proper#(U51(X1,X2,X3)) -> proper#(X3) p14: proper#(U53(X)) -> proper#(X) p15: proper#(U62(X)) -> proper#(X) p16: proper#(U71(X1,X2)) -> proper#(X2) p17: proper#(U72(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U11_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (1,3) U12_A(x1) = ((1,0),(1,1)) x1 + (2,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U21_A(x1,x2,x3) = x1 + x2 + (2,1) U22_A(x1,x2) = x1 + x2 + (2,3) isList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U23_A(x1) = x1 + (2,1) U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) isQid_A(x1) = ((1,0),(1,1)) x1 + (2,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + ((0,0),(1,0)) x3 + (2,1) U42_A(x1,x2) = x1 + (2,1) U51_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + x3 + (2,3) U53_A(x1) = x1 + (2,3) U62_A(x1) = x1 + (2,3) U71_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (2,3) U72_A(x1) = x1 + (2,3) precedence: U51 > U22 = isList = U23 > U42 > U12 = U31 > proper# = isQid = U41 = U53 = U71 > isNeList = U62 > U11 = U21 > U72 partial status: pi(proper#) = [1] pi(U11) = [1] pi(U12) = [] pi(isNeList) = [] pi(U21) = [] pi(U22) = [2] pi(isList) = [1] pi(U23) = [1] pi(U31) = [] pi(isQid) = [1] pi(U41) = [2] pi(U42) = [1] pi(U51) = [3] pi(U53) = [1] pi(U62) = [1] pi(U71) = [2] pi(U72) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U12(X)) -> proper#(X) p2: proper#(isNeList(X)) -> proper#(X) p3: proper#(U21(X1,X2,X3)) -> proper#(X1) p4: proper#(U22(X1,X2)) -> proper#(X2) p5: proper#(isList(X)) -> proper#(X) p6: proper#(U23(X)) -> proper#(X) p7: proper#(U31(X1,X2)) -> proper#(X2) p8: proper#(isQid(X)) -> proper#(X) p9: proper#(U41(X1,X2,X3)) -> proper#(X1) p10: proper#(U41(X1,X2,X3)) -> proper#(X2) p11: proper#(U42(X1,X2)) -> proper#(X1) p12: proper#(U51(X1,X2,X3)) -> proper#(X3) p13: proper#(U53(X)) -> proper#(X) p14: proper#(U62(X)) -> proper#(X) p15: proper#(U71(X1,X2)) -> proper#(X2) p16: proper#(U72(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U12(X)) -> proper#(X) p2: proper#(U72(X)) -> proper#(X) p3: proper#(U71(X1,X2)) -> proper#(X2) p4: proper#(U62(X)) -> proper#(X) p5: proper#(U53(X)) -> proper#(X) p6: proper#(U51(X1,X2,X3)) -> proper#(X3) p7: proper#(U42(X1,X2)) -> proper#(X1) p8: proper#(U41(X1,X2,X3)) -> proper#(X2) p9: proper#(U41(X1,X2,X3)) -> proper#(X1) p10: proper#(isQid(X)) -> proper#(X) p11: proper#(U31(X1,X2)) -> proper#(X2) p12: proper#(U23(X)) -> proper#(X) p13: proper#(isList(X)) -> proper#(X) p14: proper#(U22(X1,X2)) -> proper#(X2) p15: proper#(U21(X1,X2,X3)) -> proper#(X1) p16: proper#(isNeList(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U12_A(x1) = x1 + (2,1) U72_A(x1) = ((1,0),(1,1)) x1 + (2,1) U71_A(x1,x2) = x2 + (2,1) U62_A(x1) = ((1,0),(1,1)) x1 + (2,1) U53_A(x1) = ((1,0),(1,1)) x1 + (2,3) U51_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U42_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,3) isQid_A(x1) = ((1,0),(1,1)) x1 + (2,3) U31_A(x1,x2) = x1 + x2 + (2,1) U23_A(x1) = ((1,0),(1,0)) x1 + (2,1) isList_A(x1) = x1 + (2,3) U22_A(x1,x2) = x1 + x2 + (2,3) U21_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + x3 + (2,3) isNeList_A(x1) = x1 + (2,3) precedence: U71 = U22 = U21 > U23 > U31 > U62 = U51 = isList > U72 = U53 = isQid > isNeList > U12 > proper# > U41 > U42 partial status: pi(proper#) = [1] pi(U12) = [1] pi(U72) = [] pi(U71) = [] pi(U62) = [1] pi(U53) = [1] pi(U51) = [3] pi(U42) = [1, 2] pi(U41) = [1] pi(isQid) = [1] pi(U31) = [2] pi(U23) = [] pi(isList) = [] pi(U22) = [2] pi(U21) = [] pi(isNeList) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U71(X1,X2)) -> proper#(X2) p3: proper#(U62(X)) -> proper#(X) p4: proper#(U53(X)) -> proper#(X) p5: proper#(U51(X1,X2,X3)) -> proper#(X3) p6: proper#(U42(X1,X2)) -> proper#(X1) p7: proper#(U41(X1,X2,X3)) -> proper#(X2) p8: proper#(U41(X1,X2,X3)) -> proper#(X1) p9: proper#(isQid(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X2) p11: proper#(U23(X)) -> proper#(X) p12: proper#(isList(X)) -> proper#(X) p13: proper#(U22(X1,X2)) -> proper#(X2) p14: proper#(U21(X1,X2,X3)) -> proper#(X1) p15: proper#(isNeList(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isNeList(X)) -> proper#(X) p3: proper#(U21(X1,X2,X3)) -> proper#(X1) p4: proper#(U22(X1,X2)) -> proper#(X2) p5: proper#(isList(X)) -> proper#(X) p6: proper#(U23(X)) -> proper#(X) p7: proper#(U31(X1,X2)) -> proper#(X2) p8: proper#(isQid(X)) -> proper#(X) p9: proper#(U41(X1,X2,X3)) -> proper#(X1) p10: proper#(U41(X1,X2,X3)) -> proper#(X2) p11: proper#(U42(X1,X2)) -> proper#(X1) p12: proper#(U51(X1,X2,X3)) -> proper#(X3) p13: proper#(U53(X)) -> proper#(X) p14: proper#(U62(X)) -> proper#(X) p15: proper#(U71(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U72_A(x1) = x1 + (2,3) isNeList_A(x1) = ((1,0),(1,1)) x1 + (2,1) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,3) U22_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1) isList_A(x1) = x1 + (2,1) U23_A(x1) = x1 + (2,1) U31_A(x1,x2) = x2 + (2,3) isQid_A(x1) = ((1,0),(1,1)) x1 + (2,3) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,1) U51_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + x3 + (2,3) U53_A(x1) = x1 + (2,3) U62_A(x1) = x1 + (2,3) U71_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (2,3) precedence: U51 > U53 > isQid = U42 = U62 > U21 = U22 = U71 > proper# = U72 = isNeList = isList = U23 = U31 = U41 partial status: pi(proper#) = [1] pi(U72) = [1] pi(isNeList) = [] pi(U21) = [1] pi(U22) = [] pi(isList) = [1] pi(U23) = [1] pi(U31) = [] pi(isQid) = [1] pi(U41) = [2] pi(U42) = [1] pi(U51) = [3] pi(U53) = [1] pi(U62) = [1] pi(U71) = [2] The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isNeList(X)) -> proper#(X) p3: proper#(U21(X1,X2,X3)) -> proper#(X1) p4: proper#(isList(X)) -> proper#(X) p5: proper#(U23(X)) -> proper#(X) p6: proper#(U31(X1,X2)) -> proper#(X2) p7: proper#(isQid(X)) -> proper#(X) p8: proper#(U41(X1,X2,X3)) -> proper#(X1) p9: proper#(U41(X1,X2,X3)) -> proper#(X2) p10: proper#(U42(X1,X2)) -> proper#(X1) p11: proper#(U51(X1,X2,X3)) -> proper#(X3) p12: proper#(U53(X)) -> proper#(X) p13: proper#(U62(X)) -> proper#(X) p14: proper#(U71(X1,X2)) -> proper#(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U71(X1,X2)) -> proper#(X2) p3: proper#(U62(X)) -> proper#(X) p4: proper#(U53(X)) -> proper#(X) p5: proper#(U51(X1,X2,X3)) -> proper#(X3) p6: proper#(U42(X1,X2)) -> proper#(X1) p7: proper#(U41(X1,X2,X3)) -> proper#(X2) p8: proper#(U41(X1,X2,X3)) -> proper#(X1) p9: proper#(isQid(X)) -> proper#(X) p10: proper#(U31(X1,X2)) -> proper#(X2) p11: proper#(U23(X)) -> proper#(X) p12: proper#(isList(X)) -> proper#(X) p13: proper#(U21(X1,X2,X3)) -> proper#(X1) p14: proper#(isNeList(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U72_A(x1) = x1 + (1,1) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (3,3) U62_A(x1) = ((1,0),(1,1)) x1 + (3,1) U53_A(x1) = x1 + (3,1) U51_A(x1,x2,x3) = x2 + ((1,0),(1,1)) x3 + (3,3) U42_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U41_A(x1,x2,x3) = x1 + x2 + x3 + (3,1) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,3) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (3,3) U23_A(x1) = ((1,0),(1,0)) x1 + (3,3) isList_A(x1) = ((1,0),(0,0)) x1 + (1,3) U21_A(x1,x2,x3) = x1 + x2 + x3 + (3,3) isNeList_A(x1) = x1 + (3,3) precedence: isList > U21 > proper# = U31 > isQid = isNeList > U23 > U72 > U71 > U62 > U53 > U51 = U42 = U41 partial status: pi(proper#) = [] pi(U72) = [] pi(U71) = [2] pi(U62) = [] pi(U53) = [] pi(U51) = [3] pi(U42) = [1, 2] pi(U41) = [1, 2] pi(isQid) = [] pi(U31) = [] pi(U23) = [] pi(isList) = [] pi(U21) = [1] pi(isNeList) = [1] The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U71(X1,X2)) -> proper#(X2) p3: proper#(U62(X)) -> proper#(X) p4: proper#(U51(X1,X2,X3)) -> proper#(X3) p5: proper#(U42(X1,X2)) -> proper#(X1) p6: proper#(U41(X1,X2,X3)) -> proper#(X2) p7: proper#(U41(X1,X2,X3)) -> proper#(X1) p8: proper#(isQid(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(U23(X)) -> proper#(X) p11: proper#(isList(X)) -> proper#(X) p12: proper#(U21(X1,X2,X3)) -> proper#(X1) p13: proper#(isNeList(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isNeList(X)) -> proper#(X) p3: proper#(U21(X1,X2,X3)) -> proper#(X1) p4: proper#(isList(X)) -> proper#(X) p5: proper#(U23(X)) -> proper#(X) p6: proper#(U31(X1,X2)) -> proper#(X2) p7: proper#(isQid(X)) -> proper#(X) p8: proper#(U41(X1,X2,X3)) -> proper#(X1) p9: proper#(U41(X1,X2,X3)) -> proper#(X2) p10: proper#(U42(X1,X2)) -> proper#(X1) p11: proper#(U51(X1,X2,X3)) -> proper#(X3) p12: proper#(U62(X)) -> proper#(X) p13: proper#(U71(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U72_A(x1) = ((1,0),(0,0)) x1 + (1,1) isNeList_A(x1) = ((1,0),(1,1)) x1 + (1,0) U21_A(x1,x2,x3) = x1 + x2 + x3 + (1,0) isList_A(x1) = ((1,0),(1,1)) x1 + (3,0) U23_A(x1) = ((1,0),(1,1)) x1 + (3,3) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (1,1) isQid_A(x1) = x1 + (3,1) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (3,0) U42_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,0) U51_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x3 + (3,0) U62_A(x1) = ((1,0),(0,0)) x1 + (3,0) U71_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,3) precedence: U62 > isList > U71 > U31 > U51 > U72 > isNeList > U23 > proper# = isQid = U41 = U42 > U21 partial status: pi(proper#) = [] pi(U72) = [] pi(isNeList) = [] pi(U21) = [] pi(isList) = [] pi(U23) = [] pi(U31) = [] pi(isQid) = [] pi(U41) = [2] pi(U42) = [] pi(U51) = [] pi(U62) = [] pi(U71) = [] The next rules are strictly ordered: p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isNeList(X)) -> proper#(X) p3: proper#(U21(X1,X2,X3)) -> proper#(X1) p4: proper#(isList(X)) -> proper#(X) p5: proper#(U31(X1,X2)) -> proper#(X2) p6: proper#(isQid(X)) -> proper#(X) p7: proper#(U41(X1,X2,X3)) -> proper#(X1) p8: proper#(U41(X1,X2,X3)) -> proper#(X2) p9: proper#(U42(X1,X2)) -> proper#(X1) p10: proper#(U51(X1,X2,X3)) -> proper#(X3) p11: proper#(U62(X)) -> proper#(X) p12: proper#(U71(X1,X2)) -> proper#(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, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U71(X1,X2)) -> proper#(X2) p3: proper#(U62(X)) -> proper#(X) p4: proper#(U51(X1,X2,X3)) -> proper#(X3) p5: proper#(U42(X1,X2)) -> proper#(X1) p6: proper#(U41(X1,X2,X3)) -> proper#(X2) p7: proper#(U41(X1,X2,X3)) -> proper#(X1) p8: proper#(isQid(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(isList(X)) -> proper#(X) p11: proper#(U21(X1,X2,X3)) -> proper#(X1) p12: proper#(isNeList(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,1) U62_A(x1) = ((1,0),(1,1)) x1 + (2,1) U51_A(x1,x2,x3) = x1 + x2 + ((1,0),(1,1)) x3 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (2,3) isQid_A(x1) = x1 + (2,3) U31_A(x1,x2) = x2 + (2,3) isList_A(x1) = ((1,0),(0,0)) x1 + (2,3) U21_A(x1,x2,x3) = x1 + x2 + (2,3) isNeList_A(x1) = x1 + (2,3) precedence: U41 = U21 > isNeList > U71 > U62 > U51 > U72 = isList > U42 > proper# = isQid = U31 partial status: pi(proper#) = [1] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U51) = [3] pi(U42) = [] pi(U41) = [] pi(isQid) = [1] pi(U31) = [] pi(isList) = [] pi(U21) = [] pi(isNeList) = [] The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U71(X1,X2)) -> proper#(X2) p3: proper#(U62(X)) -> proper#(X) p4: proper#(U51(X1,X2,X3)) -> proper#(X3) p5: proper#(U42(X1,X2)) -> proper#(X1) p6: proper#(U41(X1,X2,X3)) -> proper#(X2) p7: proper#(U41(X1,X2,X3)) -> proper#(X1) p8: proper#(isQid(X)) -> proper#(X) p9: proper#(U31(X1,X2)) -> proper#(X2) p10: proper#(isList(X)) -> proper#(X) p11: proper#(U21(X1,X2,X3)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U21(X1,X2,X3)) -> proper#(X1) p3: proper#(isList(X)) -> proper#(X) p4: proper#(U31(X1,X2)) -> proper#(X2) p5: proper#(isQid(X)) -> proper#(X) p6: proper#(U41(X1,X2,X3)) -> proper#(X1) p7: proper#(U41(X1,X2,X3)) -> proper#(X2) p8: proper#(U42(X1,X2)) -> proper#(X1) p9: proper#(U51(X1,X2,X3)) -> proper#(X3) p10: proper#(U62(X)) -> proper#(X) p11: proper#(U71(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U72_A(x1) = ((1,0),(1,1)) x1 + (2,1) U21_A(x1,x2,x3) = x1 + x3 + (2,1) isList_A(x1) = x1 + (2,1) U31_A(x1,x2) = ((1,0),(1,1)) x2 + (2,3) isQid_A(x1) = x1 + (2,3) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + (2,1) U42_A(x1,x2) = x1 + x2 + (2,3) U51_A(x1,x2,x3) = ((0,0),(1,0)) x1 + x2 + x3 + (2,3) U62_A(x1) = x1 + (2,3) U71_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) precedence: U71 > U62 > U72 > U21 > isList > U31 > proper# = isQid = U41 > U51 > U42 partial status: pi(proper#) = [1] pi(U72) = [] pi(U21) = [] pi(isList) = [] pi(U31) = [] pi(isQid) = [1] pi(U41) = [2, 3] pi(U42) = [1, 2] pi(U51) = [] pi(U62) = [] pi(U71) = [] The next rules are strictly ordered: p11 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U21(X1,X2,X3)) -> proper#(X1) p3: proper#(isList(X)) -> proper#(X) p4: proper#(U31(X1,X2)) -> proper#(X2) p5: proper#(isQid(X)) -> proper#(X) p6: proper#(U41(X1,X2,X3)) -> proper#(X1) p7: proper#(U41(X1,X2,X3)) -> proper#(X2) p8: proper#(U42(X1,X2)) -> proper#(X1) p9: proper#(U51(X1,X2,X3)) -> proper#(X3) p10: proper#(U62(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U51(X1,X2,X3)) -> proper#(X3) p4: proper#(U42(X1,X2)) -> proper#(X1) p5: proper#(U41(X1,X2,X3)) -> proper#(X2) p6: proper#(U41(X1,X2,X3)) -> proper#(X1) p7: proper#(isQid(X)) -> proper#(X) p8: proper#(U31(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> proper#(X) p10: proper#(U21(X1,X2,X3)) -> 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (2,2) U72_A(x1) = x1 + (3,1) U62_A(x1) = ((1,0),(1,1)) x1 + (3,1) U51_A(x1,x2,x3) = x1 + x2 + x3 + (1,1) U42_A(x1,x2) = x1 + x2 + (3,3) U41_A(x1,x2,x3) = x1 + x2 + (3,3) isQid_A(x1) = x1 + (3,3) U31_A(x1,x2) = x2 + (3,3) isList_A(x1) = ((1,0),(1,1)) x1 + (3,3) U21_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (3,3) precedence: U21 > U72 > U31 > U41 > U51 > isList > U62 > U42 > isQid > proper# partial status: pi(proper#) = [1] pi(U72) = [] pi(U62) = [] pi(U51) = [] pi(U42) = [] pi(U41) = [1] pi(isQid) = [] pi(U31) = [] pi(isList) = [1] pi(U21) = [] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U51(X1,X2,X3)) -> proper#(X3) p4: proper#(U42(X1,X2)) -> proper#(X1) p5: proper#(U41(X1,X2,X3)) -> proper#(X2) p6: proper#(U41(X1,X2,X3)) -> proper#(X1) p7: proper#(isQid(X)) -> proper#(X) p8: proper#(U31(X1,X2)) -> proper#(X2) p9: proper#(isList(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isList(X)) -> proper#(X) p3: proper#(U31(X1,X2)) -> proper#(X2) p4: proper#(isQid(X)) -> proper#(X) p5: proper#(U41(X1,X2,X3)) -> proper#(X1) p6: proper#(U41(X1,X2,X3)) -> proper#(X2) p7: proper#(U42(X1,X2)) -> proper#(X1) p8: proper#(U51(X1,X2,X3)) -> proper#(X3) p9: proper#(U62(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U72_A(x1) = x1 + (3,1) isList_A(x1) = x1 + (3,1) U31_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,3) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,3) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (1,3) U42_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,3) U51_A(x1,x2,x3) = x2 + x3 + (3,3) U62_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: proper# > isList = U41 > U62 > U72 = U31 = U42 > U51 > isQid partial status: pi(proper#) = [] pi(U72) = [1] pi(isList) = [1] pi(U31) = [] pi(isQid) = [] pi(U41) = [2, 3] pi(U42) = [] pi(U51) = [] pi(U62) = [] The next rules are strictly ordered: p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isList(X)) -> proper#(X) p3: proper#(U31(X1,X2)) -> proper#(X2) p4: proper#(isQid(X)) -> proper#(X) p5: proper#(U41(X1,X2,X3)) -> proper#(X1) p6: proper#(U41(X1,X2,X3)) -> proper#(X2) p7: proper#(U42(X1,X2)) -> proper#(X1) p8: proper#(U62(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U42(X1,X2)) -> proper#(X1) p4: proper#(U41(X1,X2,X3)) -> proper#(X2) p5: proper#(U41(X1,X2,X3)) -> proper#(X1) p6: proper#(isQid(X)) -> proper#(X) p7: proper#(U31(X1,X2)) -> proper#(X2) p8: proper#(isList(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,0)) x1 + (2,2) U72_A(x1) = ((1,0),(0,0)) x1 + (3,1) U62_A(x1) = ((1,0),(0,0)) x1 + (1,3) U42_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,3) U41_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + x3 + (3,3) isQid_A(x1) = x1 + (3,1) U31_A(x1,x2) = x2 + (3,3) isList_A(x1) = x1 + (3,1) precedence: U62 > U42 > isQid > U72 = isList > proper# = U41 > U31 partial status: pi(proper#) = [] pi(U72) = [] pi(U62) = [] pi(U42) = [] pi(U41) = [] pi(isQid) = [1] pi(U31) = [2] pi(isList) = [] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U41(X1,X2,X3)) -> proper#(X2) p4: proper#(U41(X1,X2,X3)) -> proper#(X1) p5: proper#(isQid(X)) -> proper#(X) p6: proper#(U31(X1,X2)) -> proper#(X2) p7: proper#(isList(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isList(X)) -> proper#(X) p3: proper#(U31(X1,X2)) -> proper#(X2) p4: proper#(isQid(X)) -> proper#(X) p5: proper#(U41(X1,X2,X3)) -> proper#(X1) p6: proper#(U41(X1,X2,X3)) -> proper#(X2) p7: proper#(U62(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(0,0)) x1 + (2,1) U72_A(x1) = ((1,0),(0,0)) x1 + (3,2) isList_A(x1) = ((1,0),(1,1)) x1 + (3,2) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (3,2) isQid_A(x1) = ((1,0),(0,0)) x1 + (3,2) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (3,2) U62_A(x1) = ((1,0),(0,0)) x1 + (1,2) precedence: proper# = U72 = isList = U31 = isQid > U41 = U62 partial status: pi(proper#) = [] pi(U72) = [] pi(isList) = [] pi(U31) = [] pi(isQid) = [] pi(U41) = [2] pi(U62) = [] The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(isList(X)) -> proper#(X) p3: proper#(U31(X1,X2)) -> proper#(X2) p4: proper#(U41(X1,X2,X3)) -> proper#(X1) p5: proper#(U41(X1,X2,X3)) -> proper#(X2) p6: proper#(U62(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U41(X1,X2,X3)) -> proper#(X2) p4: proper#(U41(X1,X2,X3)) -> proper#(X1) p5: proper#(U31(X1,X2)) -> proper#(X2) p6: proper#(isList(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,1) U72_A(x1) = x1 + (2,2) U62_A(x1) = x1 + (2,2) U41_A(x1,x2,x3) = x1 + x2 + x3 + (2,2) U31_A(x1,x2) = ((1,0),(1,1)) x2 + (2,2) isList_A(x1) = x1 + (2,2) precedence: proper# = U72 = U62 = U41 > U31 > isList partial status: pi(proper#) = [1] pi(U72) = [1] pi(U62) = [1] pi(U41) = [1, 3] pi(U31) = [] pi(isList) = [] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U41(X1,X2,X3)) -> proper#(X2) p4: proper#(U41(X1,X2,X3)) -> proper#(X1) p5: proper#(U31(X1,X2)) -> proper#(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, p2, p3, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U31(X1,X2)) -> proper#(X2) p3: proper#(U41(X1,X2,X3)) -> proper#(X1) p4: proper#(U41(X1,X2,X3)) -> proper#(X2) p5: proper#(U62(X)) -> 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 (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 + (2,2) U72_A(x1) = x1 + (1,1) U31_A(x1,x2) = x1 + x2 + (3,1) U41_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (3,3) U62_A(x1) = x1 + (3,1) precedence: U72 = U41 > proper# = U62 > U31 partial status: pi(proper#) = [] pi(U72) = [1] pi(U31) = [] pi(U41) = [] pi(U62) = [1] The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U31(X1,X2)) -> proper#(X2) p3: proper#(U41(X1,X2,X3)) -> proper#(X1) p4: proper#(U62(X)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U72(X)) -> proper#(X) p2: proper#(U62(X)) -> proper#(X) p3: proper#(U41(X1,X2,X3)) -> proper#(X1) p4: proper#(U31(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 + (1,2) U72_A(x1) = ((1,0),(1,1)) x1 + (2,3) U62_A(x1) = x1 + (2,3) U41_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,3) U31_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (2,1) precedence: U41 > proper# = U72 = U31 > U62 partial status: pi(proper#) = [1] pi(U72) = [] pi(U62) = [] pi(U41) = [1, 3] pi(U31) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U62(X)) -> proper#(X) p2: proper#(U41(X1,X2,X3)) -> proper#(X1) p3: proper#(U31(X1,X2)) -> proper#(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, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U62(X)) -> proper#(X) p2: proper#(U31(X1,X2)) -> proper#(X2) p3: proper#(U41(X1,X2,X3)) -> 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = x1 U62_A(x1) = x1 + (1,1) U31_A(x1,x2) = x1 + x2 + (1,1) U41_A(x1,x2,x3) = x1 + x2 + x3 + (1,1) precedence: proper# = U62 > U31 = U41 partial status: pi(proper#) = [1] pi(U62) = [1] pi(U31) = [2] pi(U41) = [3] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U62(X)) -> proper#(X) p2: proper#(U31(X1,X2)) -> proper#(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, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U62(X)) -> proper#(X) p2: proper#(U31(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,0)) x1 + (1,2) U62_A(x1) = ((1,0),(0,0)) x1 + (2,1) U31_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (2,1) precedence: proper# = U62 = U31 partial status: pi(proper#) = [] pi(U62) = [] pi(U31) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: proper#(U31(X1,X2)) -> proper#(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: proper#(U31(X1,X2)) -> proper#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: proper#_A(x1) = ((1,0),(1,1)) x1 U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (1,1) precedence: proper# = U31 partial status: pi(proper#) = [1] pi(U31) = [2] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: __#(mark(X1),X2) -> __#(X1,X2) p2: __#(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: __#_A(x1,x2) = x2 + (1,1) mark_A(x1) = ((1,0),(1,1)) x1 + (2,2) ok_A(x1) = ((1,0),(1,1)) x1 + (2,2) precedence: __# = mark = ok partial status: pi(__#) = [2] pi(mark) = [1] pi(ok) = [1] The next rules are strictly ordered: 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) p2: __#(ok(X1),ok(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, p2} -- 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) 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: __#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: __# = mark = ok partial status: pi(__#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: __#(ok(X1),ok(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: __#(ok(X1),ok(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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: __#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > __# partial status: pi(__#) = [] pi(ok) = [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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U12#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U12# = mark = ok partial status: pi(U12#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U12#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U12# = ok partial status: pi(U12#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNeList#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isNeList# = ok partial status: pi(isNeList#) = [] pi(ok) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U22#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U22# = mark = ok partial status: pi(U22#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U22#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U22# partial status: pi(U22#) = [] pi(ok) = [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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isList#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isList# = ok partial status: pi(isList#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U23#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U23# = mark = ok partial status: pi(U23#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U23#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U23# = ok partial status: pi(U23#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U32#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U32# = mark = ok partial status: pi(U32#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U32#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U32# = ok partial status: pi(U32#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isQid#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isQid# = ok partial status: pi(isQid#) = [] pi(ok) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U42#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U42# = mark = ok partial status: pi(U42#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U42#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U42# partial status: pi(U42#) = [] pi(ok) = [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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U43#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U43# = mark = ok partial status: pi(U43#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U43#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U43# = ok partial status: pi(U43#) = [] pi(ok) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U52#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U52# = mark = ok partial status: pi(U52#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U52#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U52# partial status: pi(U52#) = [] pi(ok) = [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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U53#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U53# = mark = ok partial status: pi(U53#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U53#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U53# = ok partial status: pi(U53#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U62#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U62# = mark = ok partial status: pi(U62#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U62#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U62# = ok partial status: pi(U62#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U72#_A(x1) = ((1,0),(0,0)) x1 + (1,1) mark_A(x1) = x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (2,2) precedence: U72# = mark = ok partial status: pi(U72#) = [] pi(mark) = [1] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U72#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U72# = ok partial status: pi(U72#) = [] pi(ok) = [] 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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNePal#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isNePal# = ok partial status: pi(isNePal#) = [] pi(ok) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U11#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U11# = mark = ok partial status: pi(U11#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U11#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U11# partial status: pi(U11#) = [] pi(ok) = [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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isPalListKind#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isPalListKind# = ok partial status: pi(isPalListKind#) = [] pi(ok) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U21#_A(x1,x2,x3) = x1 + x3 + (1,2) mark_A(x1) = x1 + (2,1) ok_A(x1) = x1 + (2,1) precedence: mark = ok > U21# partial status: pi(U21#) = [1] pi(mark) = [] pi(ok) = [] 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U21#_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + x3 + (2,1) mark_A(x1) = ((1,0),(0,0)) x1 + (1,2) precedence: U21# > mark partial status: pi(U21#) = [3] pi(mark) = [] 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: and#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: and# = mark = ok partial status: pi(and#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: and#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > and# partial status: pi(and#) = [] pi(ok) = [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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U31#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U31# = mark = ok partial status: pi(U31#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U31#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U31# partial status: pi(U31#) = [] pi(ok) = [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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U41#_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x3 + (1,2) mark_A(x1) = x1 + (2,1) ok_A(x1) = x1 + (2,1) precedence: mark = ok > U41# partial status: pi(U41#) = [1] pi(mark) = [] pi(ok) = [] 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U41#_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + x3 + (2,1) mark_A(x1) = ((1,0),(0,0)) x1 + (1,2) precedence: U41# > mark partial status: pi(U41#) = [3] pi(mark) = [] 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U51#_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x3 + (1,2) mark_A(x1) = x1 + (2,3) ok_A(x1) = x1 + (2,1) precedence: mark = ok > U51# partial status: pi(U51#) = [1] pi(mark) = [] pi(ok) = [] 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U51#_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + x3 + (2,1) mark_A(x1) = ((1,0),(0,0)) x1 + (1,2) precedence: U51# > mark partial status: pi(U51#) = [3] pi(mark) = [] 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U61#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U61# = mark = ok partial status: pi(U61#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U61#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U61# partial status: pi(U61#) = [] pi(ok) = [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: 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 reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isPal#_A(x1) = ((1,0),(1,0)) x1 + (2,2) ok_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: isPal# = ok partial status: pi(isPal#) = [] pi(ok) = [] 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: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U71#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) ok_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U71# = mark = ok partial status: pi(U71#) = [] pi(mark) = [] pi(ok) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U71#_A(x1,x2) = x1 ok_A(x1) = x1 + (1,1) precedence: ok > U71# partial status: pi(U71#) = [] pi(ok) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.