YES We show the termination of the TRS R: a__zeros() -> cons(|0|(),zeros()) a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) a__U106(tt()) -> tt() a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) a__U114(tt(),L) -> s(a__length(mark(L))) a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) a__U122(tt()) -> nil() a__U13(tt()) -> tt() a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) a__U22(tt(),V1) -> a__U23(a__isNat(V1)) a__U23(tt()) -> tt() a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) a__U32(tt(),V) -> a__U33(a__isNatList(V)) a__U33(tt()) -> tt() a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) a__U46(tt()) -> tt() a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) a__U52(tt()) -> tt() a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) a__U62(tt()) -> tt() a__U71(tt()) -> tt() a__U81(tt()) -> tt() a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) a__U96(tt()) -> tt() a__isNat(|0|()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) a__isNatIList(zeros()) -> tt() a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) a__isNatIListKind(nil()) -> tt() a__isNatIListKind(zeros()) -> tt() a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) a__isNatKind(|0|()) -> tt() a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) a__isNatList(nil()) -> tt() a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) a__length(nil()) -> |0|() a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) mark(zeros()) -> a__zeros() mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) mark(isNatKind(X)) -> a__isNatKind(X) mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) mark(isNatIListKind(X)) -> a__isNatIListKind(X) mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) mark(U105(X1,X2)) -> a__U105(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(U106(X)) -> a__U106(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) mark(U114(X1,X2)) -> a__U114(mark(X1),X2) mark(length(X)) -> a__length(mark(X)) mark(U13(X)) -> a__U13(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U121(X1,X2)) -> a__U121(mark(X1),X2) mark(U122(X)) -> a__U122(mark(X)) mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(U21(X1,X2)) -> a__U21(mark(X1),X2) mark(U22(X1,X2)) -> a__U22(mark(X1),X2) mark(U23(X)) -> a__U23(mark(X)) mark(U31(X1,X2)) -> a__U31(mark(X1),X2) mark(U32(X1,X2)) -> a__U32(mark(X1),X2) mark(U33(X)) -> a__U33(mark(X)) mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) mark(U45(X1,X2)) -> a__U45(mark(X1),X2) mark(U46(X)) -> a__U46(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2)) -> a__U61(mark(X1),X2) mark(U62(X)) -> a__U62(mark(X)) mark(U71(X)) -> a__U71(mark(X)) mark(U81(X)) -> a__U81(mark(X)) mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) mark(U95(X1,X2)) -> a__U95(mark(X1),X2) mark(U96(X)) -> a__U96(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(|0|()) -> |0|() mark(tt()) -> tt() mark(s(X)) -> s(mark(X)) mark(nil()) -> nil() a__zeros() -> zeros() a__U101(X1,X2,X3) -> U101(X1,X2,X3) a__U102(X1,X2,X3) -> U102(X1,X2,X3) a__isNatKind(X) -> isNatKind(X) a__U103(X1,X2,X3) -> U103(X1,X2,X3) a__isNatIListKind(X) -> isNatIListKind(X) a__U104(X1,X2,X3) -> U104(X1,X2,X3) a__U105(X1,X2) -> U105(X1,X2) a__isNat(X) -> isNat(X) a__U106(X) -> U106(X) a__isNatIList(X) -> isNatIList(X) a__U11(X1,X2) -> U11(X1,X2) a__U12(X1,X2) -> U12(X1,X2) a__U111(X1,X2,X3) -> U111(X1,X2,X3) a__U112(X1,X2,X3) -> U112(X1,X2,X3) a__U113(X1,X2,X3) -> U113(X1,X2,X3) a__U114(X1,X2) -> U114(X1,X2) a__length(X) -> length(X) a__U13(X) -> U13(X) a__isNatList(X) -> isNatList(X) a__U121(X1,X2) -> U121(X1,X2) a__U122(X) -> U122(X) a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) a__take(X1,X2) -> take(X1,X2) a__U21(X1,X2) -> U21(X1,X2) a__U22(X1,X2) -> U22(X1,X2) a__U23(X) -> U23(X) a__U31(X1,X2) -> U31(X1,X2) a__U32(X1,X2) -> U32(X1,X2) a__U33(X) -> U33(X) a__U41(X1,X2,X3) -> U41(X1,X2,X3) a__U42(X1,X2,X3) -> U42(X1,X2,X3) a__U43(X1,X2,X3) -> U43(X1,X2,X3) a__U44(X1,X2,X3) -> U44(X1,X2,X3) a__U45(X1,X2) -> U45(X1,X2) a__U46(X) -> U46(X) a__U51(X1,X2) -> U51(X1,X2) a__U52(X) -> U52(X) a__U61(X1,X2) -> U61(X1,X2) a__U62(X) -> U62(X) a__U71(X) -> U71(X) a__U81(X) -> U81(X) a__U91(X1,X2,X3) -> U91(X1,X2,X3) a__U92(X1,X2,X3) -> U92(X1,X2,X3) a__U93(X1,X2,X3) -> U93(X1,X2,X3) a__U94(X1,X2,X3) -> U94(X1,X2,X3) a__U95(X1,X2) -> U95(X1,X2) a__U96(X) -> U96(X) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U101#(tt(),V1,V2) -> a__U102#(a__isNatKind(V1),V1,V2) p2: a__U101#(tt(),V1,V2) -> a__isNatKind#(V1) p3: a__U102#(tt(),V1,V2) -> a__U103#(a__isNatIListKind(V2),V1,V2) p4: a__U102#(tt(),V1,V2) -> a__isNatIListKind#(V2) p5: a__U103#(tt(),V1,V2) -> a__U104#(a__isNatIListKind(V2),V1,V2) p6: a__U103#(tt(),V1,V2) -> a__isNatIListKind#(V2) p7: a__U104#(tt(),V1,V2) -> a__U105#(a__isNat(V1),V2) p8: a__U104#(tt(),V1,V2) -> a__isNat#(V1) p9: a__U105#(tt(),V2) -> a__U106#(a__isNatIList(V2)) p10: a__U105#(tt(),V2) -> a__isNatIList#(V2) p11: a__U11#(tt(),V1) -> a__U12#(a__isNatIListKind(V1),V1) p12: a__U11#(tt(),V1) -> a__isNatIListKind#(V1) p13: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p14: a__U111#(tt(),L,N) -> a__isNatIListKind#(L) p15: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) p16: a__U112#(tt(),L,N) -> a__isNat#(N) p17: a__U113#(tt(),L,N) -> a__U114#(a__isNatKind(N),L) p18: a__U113#(tt(),L,N) -> a__isNatKind#(N) p19: a__U114#(tt(),L) -> a__length#(mark(L)) p20: a__U114#(tt(),L) -> mark#(L) p21: a__U12#(tt(),V1) -> a__U13#(a__isNatList(V1)) p22: a__U12#(tt(),V1) -> a__isNatList#(V1) p23: a__U121#(tt(),IL) -> a__U122#(a__isNatIListKind(IL)) p24: a__U121#(tt(),IL) -> a__isNatIListKind#(IL) p25: a__U131#(tt(),IL,M,N) -> a__U132#(a__isNatIListKind(IL),IL,M,N) p26: a__U131#(tt(),IL,M,N) -> a__isNatIListKind#(IL) p27: a__U132#(tt(),IL,M,N) -> a__U133#(a__isNat(M),IL,M,N) p28: a__U132#(tt(),IL,M,N) -> a__isNat#(M) p29: a__U133#(tt(),IL,M,N) -> a__U134#(a__isNatKind(M),IL,M,N) p30: a__U133#(tt(),IL,M,N) -> a__isNatKind#(M) p31: a__U134#(tt(),IL,M,N) -> a__U135#(a__isNat(N),IL,M,N) p32: a__U134#(tt(),IL,M,N) -> a__isNat#(N) p33: a__U135#(tt(),IL,M,N) -> a__U136#(a__isNatKind(N),IL,M,N) p34: a__U135#(tt(),IL,M,N) -> a__isNatKind#(N) p35: a__U136#(tt(),IL,M,N) -> mark#(N) p36: a__U21#(tt(),V1) -> a__U22#(a__isNatKind(V1),V1) p37: a__U21#(tt(),V1) -> a__isNatKind#(V1) p38: a__U22#(tt(),V1) -> a__U23#(a__isNat(V1)) p39: a__U22#(tt(),V1) -> a__isNat#(V1) p40: a__U31#(tt(),V) -> a__U32#(a__isNatIListKind(V),V) p41: a__U31#(tt(),V) -> a__isNatIListKind#(V) p42: a__U32#(tt(),V) -> a__U33#(a__isNatList(V)) p43: a__U32#(tt(),V) -> a__isNatList#(V) p44: a__U41#(tt(),V1,V2) -> a__U42#(a__isNatKind(V1),V1,V2) p45: a__U41#(tt(),V1,V2) -> a__isNatKind#(V1) p46: a__U42#(tt(),V1,V2) -> a__U43#(a__isNatIListKind(V2),V1,V2) p47: a__U42#(tt(),V1,V2) -> a__isNatIListKind#(V2) p48: a__U43#(tt(),V1,V2) -> a__U44#(a__isNatIListKind(V2),V1,V2) p49: a__U43#(tt(),V1,V2) -> a__isNatIListKind#(V2) p50: a__U44#(tt(),V1,V2) -> a__U45#(a__isNat(V1),V2) p51: a__U44#(tt(),V1,V2) -> a__isNat#(V1) p52: a__U45#(tt(),V2) -> a__U46#(a__isNatIList(V2)) p53: a__U45#(tt(),V2) -> a__isNatIList#(V2) p54: a__U51#(tt(),V2) -> a__U52#(a__isNatIListKind(V2)) p55: a__U51#(tt(),V2) -> a__isNatIListKind#(V2) p56: a__U61#(tt(),V2) -> a__U62#(a__isNatIListKind(V2)) p57: a__U61#(tt(),V2) -> a__isNatIListKind#(V2) p58: a__U91#(tt(),V1,V2) -> a__U92#(a__isNatKind(V1),V1,V2) p59: a__U91#(tt(),V1,V2) -> a__isNatKind#(V1) p60: a__U92#(tt(),V1,V2) -> a__U93#(a__isNatIListKind(V2),V1,V2) p61: a__U92#(tt(),V1,V2) -> a__isNatIListKind#(V2) p62: a__U93#(tt(),V1,V2) -> a__U94#(a__isNatIListKind(V2),V1,V2) p63: a__U93#(tt(),V1,V2) -> a__isNatIListKind#(V2) p64: a__U94#(tt(),V1,V2) -> a__U95#(a__isNat(V1),V2) p65: a__U94#(tt(),V1,V2) -> a__isNat#(V1) p66: a__U95#(tt(),V2) -> a__U96#(a__isNatList(V2)) p67: a__U95#(tt(),V2) -> a__isNatList#(V2) p68: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p69: a__isNat#(length(V1)) -> a__isNatIListKind#(V1) p70: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p71: a__isNat#(s(V1)) -> a__isNatKind#(V1) p72: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V) p73: a__isNatIList#(V) -> a__isNatIListKind#(V) p74: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNatKind(V1),V1,V2) p75: a__isNatIList#(cons(V1,V2)) -> a__isNatKind#(V1) p76: a__isNatIListKind#(cons(V1,V2)) -> a__U51#(a__isNatKind(V1),V2) p77: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p78: a__isNatIListKind#(take(V1,V2)) -> a__U61#(a__isNatKind(V1),V2) p79: a__isNatIListKind#(take(V1,V2)) -> a__isNatKind#(V1) p80: a__isNatKind#(length(V1)) -> a__U71#(a__isNatIListKind(V1)) p81: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p82: a__isNatKind#(s(V1)) -> a__U81#(a__isNatKind(V1)) p83: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p84: a__isNatList#(cons(V1,V2)) -> a__U91#(a__isNatKind(V1),V1,V2) p85: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1) p86: a__isNatList#(take(V1,V2)) -> a__U101#(a__isNatKind(V1),V1,V2) p87: a__isNatList#(take(V1,V2)) -> a__isNatKind#(V1) p88: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p89: a__length#(cons(N,L)) -> a__isNatList#(L) p90: a__take#(|0|(),IL) -> a__U121#(a__isNatIList(IL),IL) p91: a__take#(|0|(),IL) -> a__isNatIList#(IL) p92: a__take#(s(M),cons(N,IL)) -> a__U131#(a__isNatIList(IL),IL,M,N) p93: a__take#(s(M),cons(N,IL)) -> a__isNatIList#(IL) p94: mark#(zeros()) -> a__zeros#() p95: mark#(U101(X1,X2,X3)) -> a__U101#(mark(X1),X2,X3) p96: mark#(U101(X1,X2,X3)) -> mark#(X1) p97: mark#(U102(X1,X2,X3)) -> a__U102#(mark(X1),X2,X3) p98: mark#(U102(X1,X2,X3)) -> mark#(X1) p99: mark#(isNatKind(X)) -> a__isNatKind#(X) p100: mark#(U103(X1,X2,X3)) -> a__U103#(mark(X1),X2,X3) p101: mark#(U103(X1,X2,X3)) -> mark#(X1) p102: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p103: mark#(U104(X1,X2,X3)) -> a__U104#(mark(X1),X2,X3) p104: mark#(U104(X1,X2,X3)) -> mark#(X1) p105: mark#(U105(X1,X2)) -> a__U105#(mark(X1),X2) p106: mark#(U105(X1,X2)) -> mark#(X1) p107: mark#(isNat(X)) -> a__isNat#(X) p108: mark#(U106(X)) -> a__U106#(mark(X)) p109: mark#(U106(X)) -> mark#(X) p110: mark#(isNatIList(X)) -> a__isNatIList#(X) p111: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2) p112: mark#(U11(X1,X2)) -> mark#(X1) p113: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p114: mark#(U12(X1,X2)) -> mark#(X1) p115: mark#(U111(X1,X2,X3)) -> a__U111#(mark(X1),X2,X3) p116: mark#(U111(X1,X2,X3)) -> mark#(X1) p117: mark#(U112(X1,X2,X3)) -> a__U112#(mark(X1),X2,X3) p118: mark#(U112(X1,X2,X3)) -> mark#(X1) p119: mark#(U113(X1,X2,X3)) -> a__U113#(mark(X1),X2,X3) p120: mark#(U113(X1,X2,X3)) -> mark#(X1) p121: mark#(U114(X1,X2)) -> a__U114#(mark(X1),X2) p122: mark#(U114(X1,X2)) -> mark#(X1) p123: mark#(length(X)) -> a__length#(mark(X)) p124: mark#(length(X)) -> mark#(X) p125: mark#(U13(X)) -> a__U13#(mark(X)) p126: mark#(U13(X)) -> mark#(X) p127: mark#(isNatList(X)) -> a__isNatList#(X) p128: mark#(U121(X1,X2)) -> a__U121#(mark(X1),X2) p129: mark#(U121(X1,X2)) -> mark#(X1) p130: mark#(U122(X)) -> a__U122#(mark(X)) p131: mark#(U122(X)) -> mark#(X) p132: mark#(U131(X1,X2,X3,X4)) -> a__U131#(mark(X1),X2,X3,X4) p133: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p134: mark#(U132(X1,X2,X3,X4)) -> a__U132#(mark(X1),X2,X3,X4) p135: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p136: mark#(U133(X1,X2,X3,X4)) -> a__U133#(mark(X1),X2,X3,X4) p137: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p138: mark#(U134(X1,X2,X3,X4)) -> a__U134#(mark(X1),X2,X3,X4) p139: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p140: mark#(U135(X1,X2,X3,X4)) -> a__U135#(mark(X1),X2,X3,X4) p141: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p142: mark#(U136(X1,X2,X3,X4)) -> a__U136#(mark(X1),X2,X3,X4) p143: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p144: mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) p145: mark#(take(X1,X2)) -> mark#(X1) p146: mark#(take(X1,X2)) -> mark#(X2) p147: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p148: mark#(U21(X1,X2)) -> mark#(X1) p149: mark#(U22(X1,X2)) -> a__U22#(mark(X1),X2) p150: mark#(U22(X1,X2)) -> mark#(X1) p151: mark#(U23(X)) -> a__U23#(mark(X)) p152: mark#(U23(X)) -> mark#(X) p153: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p154: mark#(U31(X1,X2)) -> mark#(X1) p155: mark#(U32(X1,X2)) -> a__U32#(mark(X1),X2) p156: mark#(U32(X1,X2)) -> mark#(X1) p157: mark#(U33(X)) -> a__U33#(mark(X)) p158: mark#(U33(X)) -> mark#(X) p159: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p160: mark#(U41(X1,X2,X3)) -> mark#(X1) p161: mark#(U42(X1,X2,X3)) -> a__U42#(mark(X1),X2,X3) p162: mark#(U42(X1,X2,X3)) -> mark#(X1) p163: mark#(U43(X1,X2,X3)) -> a__U43#(mark(X1),X2,X3) p164: mark#(U43(X1,X2,X3)) -> mark#(X1) p165: mark#(U44(X1,X2,X3)) -> a__U44#(mark(X1),X2,X3) p166: mark#(U44(X1,X2,X3)) -> mark#(X1) p167: mark#(U45(X1,X2)) -> a__U45#(mark(X1),X2) p168: mark#(U45(X1,X2)) -> mark#(X1) p169: mark#(U46(X)) -> a__U46#(mark(X)) p170: mark#(U46(X)) -> mark#(X) p171: mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) p172: mark#(U51(X1,X2)) -> mark#(X1) p173: mark#(U52(X)) -> a__U52#(mark(X)) p174: mark#(U52(X)) -> mark#(X) p175: mark#(U61(X1,X2)) -> a__U61#(mark(X1),X2) p176: mark#(U61(X1,X2)) -> mark#(X1) p177: mark#(U62(X)) -> a__U62#(mark(X)) p178: mark#(U62(X)) -> mark#(X) p179: mark#(U71(X)) -> a__U71#(mark(X)) p180: mark#(U71(X)) -> mark#(X) p181: mark#(U81(X)) -> a__U81#(mark(X)) p182: mark#(U81(X)) -> mark#(X) p183: mark#(U91(X1,X2,X3)) -> a__U91#(mark(X1),X2,X3) p184: mark#(U91(X1,X2,X3)) -> mark#(X1) p185: mark#(U92(X1,X2,X3)) -> a__U92#(mark(X1),X2,X3) p186: mark#(U92(X1,X2,X3)) -> mark#(X1) p187: mark#(U93(X1,X2,X3)) -> a__U93#(mark(X1),X2,X3) p188: mark#(U93(X1,X2,X3)) -> mark#(X1) p189: mark#(U94(X1,X2,X3)) -> a__U94#(mark(X1),X2,X3) p190: mark#(U94(X1,X2,X3)) -> mark#(X1) p191: mark#(U95(X1,X2)) -> a__U95#(mark(X1),X2) p192: mark#(U95(X1,X2)) -> mark#(X1) p193: mark#(U96(X)) -> a__U96#(mark(X)) p194: mark#(U96(X)) -> mark#(X) p195: mark#(cons(X1,X2)) -> mark#(X1) p196: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The estimated dependency graph contains the following SCCs: {p13, p15, p17, p19, p20, p25, p27, p29, p31, p33, p35, p88, p92, p96, p98, p101, p104, p106, p109, p112, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p126, p129, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144, p145, p146, p148, p150, p152, p154, p156, p158, p160, p162, p164, p166, p168, p170, p172, p174, p176, p178, p180, p182, p184, p186, p188, p190, p192, p194, p195, p196} {p1, p3, p5, p7, p8, p10, p11, p22, p36, p39, p40, p43, p44, p46, p48, p50, p51, p53, p58, p60, p62, p64, p65, p67, p68, p70, p72, p74, p84, p86} {p55, p57, p76, p77, p78, p79, p81, p83} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U136#(tt(),IL,M,N) -> mark#(N) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(U96(X)) -> mark#(X) p5: mark#(U95(X1,X2)) -> mark#(X1) p6: mark#(U94(X1,X2,X3)) -> mark#(X1) p7: mark#(U93(X1,X2,X3)) -> mark#(X1) p8: mark#(U92(X1,X2,X3)) -> mark#(X1) p9: mark#(U91(X1,X2,X3)) -> mark#(X1) p10: mark#(U81(X)) -> mark#(X) p11: mark#(U71(X)) -> mark#(X) p12: mark#(U62(X)) -> mark#(X) p13: mark#(U61(X1,X2)) -> mark#(X1) p14: mark#(U52(X)) -> mark#(X) p15: mark#(U51(X1,X2)) -> mark#(X1) p16: mark#(U46(X)) -> mark#(X) p17: mark#(U45(X1,X2)) -> mark#(X1) p18: mark#(U44(X1,X2,X3)) -> mark#(X1) p19: mark#(U43(X1,X2,X3)) -> mark#(X1) p20: mark#(U42(X1,X2,X3)) -> mark#(X1) p21: mark#(U41(X1,X2,X3)) -> mark#(X1) p22: mark#(U33(X)) -> mark#(X) p23: mark#(U32(X1,X2)) -> mark#(X1) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(U23(X)) -> mark#(X) p26: mark#(U22(X1,X2)) -> mark#(X1) p27: mark#(U21(X1,X2)) -> mark#(X1) p28: mark#(take(X1,X2)) -> mark#(X2) p29: mark#(take(X1,X2)) -> mark#(X1) p30: mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) p31: a__take#(s(M),cons(N,IL)) -> a__U131#(a__isNatIList(IL),IL,M,N) p32: a__U131#(tt(),IL,M,N) -> a__U132#(a__isNatIListKind(IL),IL,M,N) p33: a__U132#(tt(),IL,M,N) -> a__U133#(a__isNat(M),IL,M,N) p34: a__U133#(tt(),IL,M,N) -> a__U134#(a__isNatKind(M),IL,M,N) p35: a__U134#(tt(),IL,M,N) -> a__U135#(a__isNat(N),IL,M,N) p36: a__U135#(tt(),IL,M,N) -> a__U136#(a__isNatKind(N),IL,M,N) p37: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p38: mark#(U136(X1,X2,X3,X4)) -> a__U136#(mark(X1),X2,X3,X4) p39: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p40: mark#(U135(X1,X2,X3,X4)) -> a__U135#(mark(X1),X2,X3,X4) p41: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p42: mark#(U134(X1,X2,X3,X4)) -> a__U134#(mark(X1),X2,X3,X4) p43: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p44: mark#(U133(X1,X2,X3,X4)) -> a__U133#(mark(X1),X2,X3,X4) p45: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p46: mark#(U132(X1,X2,X3,X4)) -> a__U132#(mark(X1),X2,X3,X4) p47: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p48: mark#(U131(X1,X2,X3,X4)) -> a__U131#(mark(X1),X2,X3,X4) p49: mark#(U122(X)) -> mark#(X) p50: mark#(U121(X1,X2)) -> mark#(X1) p51: mark#(U13(X)) -> mark#(X) p52: mark#(length(X)) -> mark#(X) p53: mark#(length(X)) -> a__length#(mark(X)) p54: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p55: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p56: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) p57: a__U113#(tt(),L,N) -> a__U114#(a__isNatKind(N),L) p58: a__U114#(tt(),L) -> mark#(L) p59: mark#(U114(X1,X2)) -> mark#(X1) p60: mark#(U114(X1,X2)) -> a__U114#(mark(X1),X2) p61: a__U114#(tt(),L) -> a__length#(mark(L)) p62: mark#(U113(X1,X2,X3)) -> mark#(X1) p63: mark#(U113(X1,X2,X3)) -> a__U113#(mark(X1),X2,X3) p64: mark#(U112(X1,X2,X3)) -> mark#(X1) p65: mark#(U112(X1,X2,X3)) -> a__U112#(mark(X1),X2,X3) p66: mark#(U111(X1,X2,X3)) -> mark#(X1) p67: mark#(U111(X1,X2,X3)) -> a__U111#(mark(X1),X2,X3) p68: mark#(U12(X1,X2)) -> mark#(X1) p69: mark#(U11(X1,X2)) -> mark#(X1) p70: mark#(U106(X)) -> mark#(X) p71: mark#(U105(X1,X2)) -> mark#(X1) p72: mark#(U104(X1,X2,X3)) -> mark#(X1) p73: mark#(U103(X1,X2,X3)) -> mark#(X1) p74: mark#(U102(X1,X2,X3)) -> mark#(X1) p75: mark#(U101(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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, r141, r142, r143, r144, r145, r146, r147, r148, r149, r150, r151, r152, r153, r154, r155, r156, r157, r158, r159, r160, r161, r162, r163, r164, r165, r166, r167, r168, r169, r170, r171, r172, r173, r174, r175, r176, r177 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: a__U136#_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 45, x3 + 61, x4 + 82} tt_A = 85 mark#_A(x1) = max{81, x1 + 3} s_A(x1) = x1 cons_A(x1,x2) = max{x1 + 38, x2} U96_A(x1) = max{86, x1} U95_A(x1,x2) = max{x1 + 26, x2 + 62} U94_A(x1,x2,x3) = max{x1, x2 + 97, x3 + 62} U93_A(x1,x2,x3) = max{x1, x2 + 98, x3 + 62} U92_A(x1,x2,x3) = max{x1, x2 + 99, x3 + 62} U91_A(x1,x2,x3) = max{x1, x2 + 99, x3 + 62} U81_A(x1) = max{42, x1} U71_A(x1) = max{115, x1 + 54} U62_A(x1) = max{79, x1 + 24} U61_A(x1,x2) = max{x1, x2 + 86} U52_A(x1) = max{86, x1} U51_A(x1,x2) = max{23, x1 + 17, x2 + 21} U46_A(x1) = max{1, x1} U45_A(x1,x2) = max{x1 + 6, x2 + 65} U44_A(x1,x2,x3) = max{x1 + 25, x2 + 76, x3 + 65} U43_A(x1,x2,x3) = max{86, x1, x2 + 77, x3 + 65} U42_A(x1,x2,x3) = max{x1 + 1, x2 + 78, x3 + 65} U41_A(x1,x2,x3) = max{x1, x2 + 103, x3 + 65} U33_A(x1) = max{79, x1 + 1} U32_A(x1,x2) = max{x1, x2 + 63} U31_A(x1,x2) = max{x1 + 3, x2 + 64} U23_A(x1) = max{70, x1} U22_A(x1,x2) = max{78, x1 + 28, x2 + 70} U21_A(x1,x2) = max{x1 + 18, x2 + 70} take_A(x1,x2) = max{x1 + 71, x2 + 65} a__take#_A(x1,x2) = max{x1 + 67, x2 + 67} mark_A(x1) = x1 a__U131#_A(x1,x2,x3,x4) = max{x1 - 85, x2 + 50, x3 + 66, x4 + 87} a__isNatIList_A(x1) = x1 + 65 a__U132#_A(x1,x2,x3,x4) = max{x1 - 82, x2 + 49, x3 + 65, x4 + 86} a__isNatIListKind_A(x1) = max{61, x1 + 21} a__U133#_A(x1,x2,x3,x4) = max{x1 - 60, x2 + 48, x3 + 64, x4 + 85} a__isNat_A(x1) = x1 + 70 a__U134#_A(x1,x2,x3,x4) = max{x1 - 40, x2 + 47, x3 + 63, x4 + 84} a__isNatKind_A(x1) = max{43, x1 + 41} a__U135#_A(x1,x2,x3,x4) = max{x1 - 40, x2 + 46, x3 + 62, x4 + 83} U136_A(x1,x2,x3,x4) = max{x1, x2 + 65, x3 + 71, x4 + 80} U135_A(x1,x2,x3,x4) = max{85, x1, x2 + 65, x3 + 71, x4 + 81} U134_A(x1,x2,x3,x4) = max{85, x1, x2 + 65, x3 + 71, x4 + 82} U133_A(x1,x2,x3,x4) = max{85, x1, x2 + 65, x3 + 71, x4 + 83} U132_A(x1,x2,x3,x4) = max{x1, x2 + 65, x3 + 71, x4 + 84} U131_A(x1,x2,x3,x4) = max{x1, x2 + 65, x3 + 71, x4 + 85} U122_A(x1) = max{79, x1 + 44} U121_A(x1,x2) = max{106, x1, x2 + 65} U13_A(x1) = x1 + 80 length_A(x1) = max{116, x1 + 75} a__length#_A(x1) = x1 + 41 a__U111#_A(x1,x2,x3) = max{x1 - 21, x2 + 41, x3 + 79} a__isNatList_A(x1) = x1 + 62 a__U112#_A(x1,x2,x3) = max{x1 - 23, x2 + 41, x3 + 79} a__U113#_A(x1,x2,x3) = max{x1 + 2, x2 + 41, x3 + 41} a__U114#_A(x1,x2) = max{82, x1 - 3, x2 + 41} U114_A(x1,x2) = max{116, x1, x2 + 75} U113_A(x1,x2,x3) = max{117, x1, x2 + 75, x3 + 76} U112_A(x1,x2,x3) = max{x1 + 36, x2 + 75, x3 + 77} U111_A(x1,x2,x3) = max{x1 + 12, x2 + 75, x3 + 78} U12_A(x1,x2) = max{x1 + 123, x2 + 143} U11_A(x1,x2) = max{185, x1, x2 + 144} U106_A(x1) = max{79, x1 + 40} U105_A(x1,x2) = max{x1, x2 + 105} U104_A(x1,x2,x3) = max{x1, x2 + 80, x3 + 105} U103_A(x1,x2,x3) = max{x1, x2 + 81, x3 + 105} U102_A(x1,x2,x3) = max{x1, x2 + 83, x3 + 105} U101_A(x1,x2,x3) = max{x1, x2 + 84, x3 + 127} a__zeros_A = 82 |0|_A = 44 zeros_A = 82 a__U101_A(x1,x2,x3) = max{x1, x2 + 84, x3 + 127} a__U102_A(x1,x2,x3) = max{x1, x2 + 83, x3 + 105} a__U103_A(x1,x2,x3) = max{x1, x2 + 81, x3 + 105} a__U104_A(x1,x2,x3) = max{x1, x2 + 80, x3 + 105} a__U105_A(x1,x2) = max{x1, x2 + 105} a__U106_A(x1) = max{79, x1 + 40} a__U11_A(x1,x2) = max{185, x1, x2 + 144} a__U12_A(x1,x2) = max{x1 + 123, x2 + 143} a__U111_A(x1,x2,x3) = max{x1 + 12, x2 + 75, x3 + 78} a__U112_A(x1,x2,x3) = max{x1 + 36, x2 + 75, x3 + 77} a__U113_A(x1,x2,x3) = max{117, x1, x2 + 75, x3 + 76} a__U114_A(x1,x2) = max{116, x1, x2 + 75} a__length_A(x1) = max{116, x1 + 75} a__U13_A(x1) = x1 + 80 a__U121_A(x1,x2) = max{106, x1, x2 + 65} a__U122_A(x1) = max{79, x1 + 44} nil_A = 80 a__U131_A(x1,x2,x3,x4) = max{x1, x2 + 65, x3 + 71, x4 + 85} a__U132_A(x1,x2,x3,x4) = max{x1, x2 + 65, x3 + 71, x4 + 84} a__U133_A(x1,x2,x3,x4) = max{85, x1, x2 + 65, x3 + 71, x4 + 83} a__U134_A(x1,x2,x3,x4) = max{85, x1, x2 + 65, x3 + 71, x4 + 82} a__U135_A(x1,x2,x3,x4) = max{85, x1, x2 + 65, x3 + 71, x4 + 81} a__U136_A(x1,x2,x3,x4) = max{x1, x2 + 65, x3 + 71, x4 + 80} a__U21_A(x1,x2) = max{x1 + 18, x2 + 70} a__U22_A(x1,x2) = max{78, x1 + 28, x2 + 70} a__U23_A(x1) = max{70, x1} a__U31_A(x1,x2) = max{x1 + 3, x2 + 64} a__U32_A(x1,x2) = max{x1, x2 + 63} a__U33_A(x1) = max{79, x1 + 1} a__U41_A(x1,x2,x3) = max{x1, x2 + 103, x3 + 65} a__U42_A(x1,x2,x3) = max{x1 + 1, x2 + 78, x3 + 65} a__U43_A(x1,x2,x3) = max{86, x1, x2 + 77, x3 + 65} a__U44_A(x1,x2,x3) = max{x1 + 25, x2 + 76, x3 + 65} a__U45_A(x1,x2) = max{x1 + 6, x2 + 65} a__U46_A(x1) = max{1, x1} a__U51_A(x1,x2) = max{23, x1 + 17, x2 + 21} a__U52_A(x1) = max{86, x1} a__U61_A(x1,x2) = max{x1, x2 + 86} a__U62_A(x1) = max{79, x1 + 24} a__U71_A(x1) = max{115, x1 + 54} a__U81_A(x1) = max{42, x1} a__U91_A(x1,x2,x3) = max{x1, x2 + 99, x3 + 62} a__U92_A(x1,x2,x3) = max{x1, x2 + 99, x3 + 62} a__U93_A(x1,x2,x3) = max{x1, x2 + 98, x3 + 62} a__U94_A(x1,x2,x3) = max{x1, x2 + 97, x3 + 62} a__U95_A(x1,x2) = max{x1 + 26, x2 + 62} a__U96_A(x1) = max{86, x1} a__take_A(x1,x2) = max{x1 + 71, x2 + 65} isNatKind_A(x1) = max{43, x1 + 41} isNatIListKind_A(x1) = max{61, x1 + 21} isNat_A(x1) = x1 + 70 isNatIList_A(x1) = x1 + 65 isNatList_A(x1) = x1 + 62 2. max/plus interpretations on natural numbers: a__U136#_A(x1,x2,x3,x4) = 3 tt_A = 45 mark#_A(x1) = 4 s_A(x1) = max{46, x1 - 3} cons_A(x1,x2) = 95 U96_A(x1) = 56 U95_A(x1,x2) = 14 U94_A(x1,x2,x3) = 56 U93_A(x1,x2,x3) = 14 U92_A(x1,x2,x3) = 15 U91_A(x1,x2,x3) = 16 U81_A(x1) = 5 U71_A(x1) = 93 U62_A(x1) = 5 U61_A(x1,x2) = 4 U52_A(x1) = 2 U51_A(x1,x2) = 3 U46_A(x1) = 56 U45_A(x1,x2) = 16 U44_A(x1,x2,x3) = 17 U43_A(x1,x2,x3) = 17 U42_A(x1,x2,x3) = 17 U41_A(x1,x2,x3) = 18 U33_A(x1) = 34 U32_A(x1,x2) = 53 U31_A(x1,x2) = 53 U23_A(x1) = 45 U22_A(x1,x2) = 4 U21_A(x1,x2) = 5 take_A(x1,x2) = 53 a__take#_A(x1,x2) = 5 mark_A(x1) = max{95, x1 + 41} a__U131#_A(x1,x2,x3,x4) = 3 a__isNatIList_A(x1) = max{44, x1 - 10} a__U132#_A(x1,x2,x3,x4) = 2 a__isNatIListKind_A(x1) = 94 a__U133#_A(x1,x2,x3,x4) = 0 a__isNat_A(x1) = 48 a__U134#_A(x1,x2,x3,x4) = 1 a__isNatKind_A(x1) = 93 a__U135#_A(x1,x2,x3,x4) = 2 U136_A(x1,x2,x3,x4) = 53 U135_A(x1,x2,x3,x4) = 53 U134_A(x1,x2,x3,x4) = 95 U133_A(x1,x2,x3,x4) = 95 U132_A(x1,x2,x3,x4) = 94 U131_A(x1,x2,x3,x4) = 54 U122_A(x1) = 80 U121_A(x1,x2) = 52 U13_A(x1) = max{53, x1} length_A(x1) = 25 a__length#_A(x1) = 0 a__U111#_A(x1,x2,x3) = 0 a__isNatList_A(x1) = 59 a__U112#_A(x1,x2,x3) = 0 a__U113#_A(x1,x2,x3) = 0 a__U114#_A(x1,x2) = 0 U114_A(x1,x2) = 61 U113_A(x1,x2,x3) = 63 U112_A(x1,x2,x3) = 0 U111_A(x1,x2,x3) = 22 U12_A(x1,x2) = 5 U11_A(x1,x2) = 5 U106_A(x1) = 80 U105_A(x1,x2) = 39 U104_A(x1,x2,x3) = 50 U103_A(x1,x2,x3) = 51 U102_A(x1,x2,x3) = 0 U101_A(x1,x2,x3) = 0 a__zeros_A = 95 |0|_A = 95 zeros_A = 54 a__U101_A(x1,x2,x3) = 42 a__U102_A(x1,x2,x3) = 94 a__U103_A(x1,x2,x3) = 93 a__U104_A(x1,x2,x3) = 92 a__U105_A(x1,x2) = 81 a__U106_A(x1) = 81 a__U11_A(x1,x2) = 47 a__U12_A(x1,x2) = 47 a__U111_A(x1,x2,x3) = 64 a__U112_A(x1,x2,x3) = 64 a__U113_A(x1,x2,x3) = 63 a__U114_A(x1,x2) = 62 a__length_A(x1) = 65 a__U13_A(x1) = max{95, x1} a__U121_A(x1,x2) = 94 a__U122_A(x1) = 80 nil_A = 70 a__U131_A(x1,x2,x3,x4) = 95 a__U132_A(x1,x2,x3,x4) = 95 a__U133_A(x1,x2,x3,x4) = 95 a__U134_A(x1,x2,x3,x4) = 95 a__U135_A(x1,x2,x3,x4) = 95 a__U136_A(x1,x2,x3,x4) = 95 a__U21_A(x1,x2) = 47 a__U22_A(x1,x2) = 46 a__U23_A(x1) = 45 a__U31_A(x1,x2) = 95 a__U32_A(x1,x2) = 95 a__U33_A(x1) = 94 a__U41_A(x1,x2,x3) = 60 a__U42_A(x1,x2,x3) = 59 a__U43_A(x1,x2,x3) = 59 a__U44_A(x1,x2,x3) = 59 a__U45_A(x1,x2) = 58 a__U46_A(x1) = 57 a__U51_A(x1,x2) = 45 a__U52_A(x1) = 44 a__U61_A(x1,x2) = 46 a__U62_A(x1) = 46 a__U71_A(x1) = 94 a__U81_A(x1) = 46 a__U91_A(x1,x2,x3) = 58 a__U92_A(x1,x2,x3) = 57 a__U93_A(x1,x2,x3) = 56 a__U94_A(x1,x2,x3) = 56 a__U95_A(x1,x2) = 56 a__U96_A(x1) = 56 a__take_A(x1,x2) = 95 isNatKind_A(x1) = 51 isNatIListKind_A(x1) = 52 isNat_A(x1) = 48 isNatIList_A(x1) = max{2, x1 - 51} isNatList_A(x1) = 17 The next rules are strictly ordered: p1, p11, p12, p22, p30, p31, p32, p33, p34, p35, p36, p38, p40, p42, p44, p46, p48, p49, p51, p52, p53, p58, p60, p63, p65, p67, p68, p70 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(s(X)) -> mark#(X) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U96(X)) -> mark#(X) p4: mark#(U95(X1,X2)) -> mark#(X1) p5: mark#(U94(X1,X2,X3)) -> mark#(X1) p6: mark#(U93(X1,X2,X3)) -> mark#(X1) p7: mark#(U92(X1,X2,X3)) -> mark#(X1) p8: mark#(U91(X1,X2,X3)) -> mark#(X1) p9: mark#(U81(X)) -> mark#(X) p10: mark#(U61(X1,X2)) -> mark#(X1) p11: mark#(U52(X)) -> mark#(X) p12: mark#(U51(X1,X2)) -> mark#(X1) p13: mark#(U46(X)) -> mark#(X) p14: mark#(U45(X1,X2)) -> mark#(X1) p15: mark#(U44(X1,X2,X3)) -> mark#(X1) p16: mark#(U43(X1,X2,X3)) -> mark#(X1) p17: mark#(U42(X1,X2,X3)) -> mark#(X1) p18: mark#(U41(X1,X2,X3)) -> mark#(X1) p19: mark#(U32(X1,X2)) -> mark#(X1) p20: mark#(U31(X1,X2)) -> mark#(X1) p21: mark#(U23(X)) -> mark#(X) p22: mark#(U22(X1,X2)) -> mark#(X1) p23: mark#(U21(X1,X2)) -> mark#(X1) p24: mark#(take(X1,X2)) -> mark#(X2) p25: mark#(take(X1,X2)) -> mark#(X1) p26: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p27: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p28: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p29: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p30: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p31: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p32: mark#(U121(X1,X2)) -> mark#(X1) p33: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p34: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p35: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) p36: a__U113#(tt(),L,N) -> a__U114#(a__isNatKind(N),L) p37: mark#(U114(X1,X2)) -> mark#(X1) p38: a__U114#(tt(),L) -> a__length#(mark(L)) p39: mark#(U113(X1,X2,X3)) -> mark#(X1) p40: mark#(U112(X1,X2,X3)) -> mark#(X1) p41: mark#(U111(X1,X2,X3)) -> mark#(X1) p42: mark#(U11(X1,X2)) -> mark#(X1) p43: mark#(U105(X1,X2)) -> mark#(X1) p44: mark#(U104(X1,X2,X3)) -> mark#(X1) p45: mark#(U103(X1,X2,X3)) -> mark#(X1) p46: mark#(U102(X1,X2,X3)) -> mark#(X1) p47: mark#(U101(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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, p37, p39, p40, p41, p42, p43, p44, p45, p46, p47} {p33, p34, p35, p36, p38} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(s(X)) -> mark#(X) p2: mark#(U101(X1,X2,X3)) -> mark#(X1) p3: mark#(U102(X1,X2,X3)) -> mark#(X1) p4: mark#(U103(X1,X2,X3)) -> mark#(X1) p5: mark#(U104(X1,X2,X3)) -> mark#(X1) p6: mark#(U105(X1,X2)) -> mark#(X1) p7: mark#(U11(X1,X2)) -> mark#(X1) p8: mark#(U111(X1,X2,X3)) -> mark#(X1) p9: mark#(U112(X1,X2,X3)) -> mark#(X1) p10: mark#(U113(X1,X2,X3)) -> mark#(X1) p11: mark#(U114(X1,X2)) -> mark#(X1) p12: mark#(U121(X1,X2)) -> mark#(X1) p13: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p16: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p17: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p18: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p19: mark#(take(X1,X2)) -> mark#(X1) p20: mark#(take(X1,X2)) -> mark#(X2) p21: mark#(U21(X1,X2)) -> mark#(X1) p22: mark#(U22(X1,X2)) -> mark#(X1) p23: mark#(U23(X)) -> mark#(X) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(U32(X1,X2)) -> mark#(X1) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(U42(X1,X2,X3)) -> mark#(X1) p28: mark#(U43(X1,X2,X3)) -> mark#(X1) p29: mark#(U44(X1,X2,X3)) -> mark#(X1) p30: mark#(U45(X1,X2)) -> mark#(X1) p31: mark#(U46(X)) -> mark#(X) p32: mark#(U51(X1,X2)) -> mark#(X1) p33: mark#(U52(X)) -> mark#(X) p34: mark#(U61(X1,X2)) -> mark#(X1) p35: mark#(U81(X)) -> mark#(X) p36: mark#(U91(X1,X2,X3)) -> mark#(X1) p37: mark#(U92(X1,X2,X3)) -> mark#(X1) p38: mark#(U93(X1,X2,X3)) -> mark#(X1) p39: mark#(U94(X1,X2,X3)) -> mark#(X1) p40: mark#(U95(X1,X2)) -> mark#(X1) p41: mark#(U96(X)) -> mark#(X) p42: mark#(cons(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 s_A(x1) = x1 + 1 U101_A(x1,x2,x3) = max{x1, x2, x3} U102_A(x1,x2,x3) = max{x1 + 1, x2 - 1, x3 - 1} U103_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U104_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U105_A(x1,x2) = max{x1, x2 - 1} U11_A(x1,x2) = max{x1, x2 - 1} U111_A(x1,x2,x3) = max{x1 + 1, x2 - 1, x3 - 1} U112_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U113_A(x1,x2,x3) = max{x1 + 1, x2 - 1, x3 - 1} U114_A(x1,x2) = max{x1, x2 - 1} U121_A(x1,x2) = max{x1, x2 - 1} U131_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U132_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U133_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U134_A(x1,x2,x3,x4) = max{x1 + 1, x2 - 1, x3 - 1, x4 - 1} U135_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U136_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} take_A(x1,x2) = max{x1, x2 + 1} U21_A(x1,x2) = max{x1, x2 - 1} U22_A(x1,x2) = max{x1 + 1, x2 - 1} U23_A(x1) = x1 + 1 U31_A(x1,x2) = max{x1 + 1, x2 - 1} U32_A(x1,x2) = max{x1 + 1, x2 - 1} U41_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U42_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U43_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U44_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U45_A(x1,x2) = max{x1 + 1, x2 - 1} U46_A(x1) = x1 + 1 U51_A(x1,x2) = max{x1, x2 - 1} U52_A(x1) = x1 + 1 U61_A(x1,x2) = max{x1, x2 - 1} U81_A(x1) = x1 + 1 U91_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U92_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U93_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U94_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U95_A(x1,x2) = max{x1, x2 - 1} U96_A(x1) = x1 + 1 cons_A(x1,x2) = max{x1, x2 - 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 s_A(x1) = x1 + 2 U101_A(x1,x2,x3) = 0 U102_A(x1,x2,x3) = 0 U103_A(x1,x2,x3) = 0 U104_A(x1,x2,x3) = 0 U105_A(x1,x2) = 0 U11_A(x1,x2) = 0 U111_A(x1,x2,x3) = 0 U112_A(x1,x2,x3) = 0 U113_A(x1,x2,x3) = 0 U114_A(x1,x2) = 0 U121_A(x1,x2) = 0 U131_A(x1,x2,x3,x4) = 0 U132_A(x1,x2,x3,x4) = 0 U133_A(x1,x2,x3,x4) = 0 U134_A(x1,x2,x3,x4) = 0 U135_A(x1,x2,x3,x4) = 0 U136_A(x1,x2,x3,x4) = 0 take_A(x1,x2) = 0 U21_A(x1,x2) = 0 U22_A(x1,x2) = 0 U23_A(x1) = x1 + 2 U31_A(x1,x2) = 0 U32_A(x1,x2) = 0 U41_A(x1,x2,x3) = 0 U42_A(x1,x2,x3) = 0 U43_A(x1,x2,x3) = 0 U44_A(x1,x2,x3) = 0 U45_A(x1,x2) = 0 U46_A(x1) = x1 + 2 U51_A(x1,x2) = 0 U52_A(x1) = x1 + 2 U61_A(x1,x2) = 0 U81_A(x1) = x1 + 1 U91_A(x1,x2,x3) = 0 U92_A(x1,x2,x3) = 0 U93_A(x1,x2,x3) = 0 U94_A(x1,x2,x3) = 0 U95_A(x1,x2) = 0 U96_A(x1) = x1 + 2 cons_A(x1,x2) = 0 The next rules are strictly ordered: p1, p3, p8, p10, p16, p20, p22, p23, p24, p25, p30, p31, p33, p35, p41 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(U103(X1,X2,X3)) -> mark#(X1) p3: mark#(U104(X1,X2,X3)) -> mark#(X1) p4: mark#(U105(X1,X2)) -> mark#(X1) p5: mark#(U11(X1,X2)) -> mark#(X1) p6: mark#(U112(X1,X2,X3)) -> mark#(X1) p7: mark#(U114(X1,X2)) -> mark#(X1) p8: mark#(U121(X1,X2)) -> mark#(X1) p9: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(take(X1,X2)) -> mark#(X1) p15: mark#(U21(X1,X2)) -> mark#(X1) p16: mark#(U41(X1,X2,X3)) -> mark#(X1) p17: mark#(U42(X1,X2,X3)) -> mark#(X1) p18: mark#(U43(X1,X2,X3)) -> mark#(X1) p19: mark#(U44(X1,X2,X3)) -> mark#(X1) p20: mark#(U51(X1,X2)) -> mark#(X1) p21: mark#(U61(X1,X2)) -> mark#(X1) p22: mark#(U91(X1,X2,X3)) -> mark#(X1) p23: mark#(U92(X1,X2,X3)) -> mark#(X1) p24: mark#(U93(X1,X2,X3)) -> mark#(X1) p25: mark#(U94(X1,X2,X3)) -> mark#(X1) p26: mark#(U95(X1,X2)) -> mark#(X1) p27: mark#(cons(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U95(X1,X2)) -> mark#(X1) p4: mark#(U94(X1,X2,X3)) -> mark#(X1) p5: mark#(U93(X1,X2,X3)) -> mark#(X1) p6: mark#(U92(X1,X2,X3)) -> mark#(X1) p7: mark#(U91(X1,X2,X3)) -> mark#(X1) p8: mark#(U61(X1,X2)) -> mark#(X1) p9: mark#(U51(X1,X2)) -> mark#(X1) p10: mark#(U44(X1,X2,X3)) -> mark#(X1) p11: mark#(U43(X1,X2,X3)) -> mark#(X1) p12: mark#(U42(X1,X2,X3)) -> mark#(X1) p13: mark#(U41(X1,X2,X3)) -> mark#(X1) p14: mark#(U21(X1,X2)) -> mark#(X1) p15: mark#(take(X1,X2)) -> mark#(X1) p16: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p17: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p18: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p19: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p20: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p21: mark#(U121(X1,X2)) -> mark#(X1) p22: mark#(U114(X1,X2)) -> mark#(X1) p23: mark#(U112(X1,X2,X3)) -> mark#(X1) p24: mark#(U11(X1,X2)) -> mark#(X1) p25: mark#(U105(X1,X2)) -> mark#(X1) p26: mark#(U104(X1,X2,X3)) -> mark#(X1) p27: mark#(U103(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U101_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} cons_A(x1,x2) = max{x1, x2 - 1} U95_A(x1,x2) = max{x1 + 1, x2 - 1} U94_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U93_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U92_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U91_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U61_A(x1,x2) = max{x1 + 1, x2 - 1} U51_A(x1,x2) = max{x1, x2 - 1} U44_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U43_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U42_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U41_A(x1,x2,x3) = max{x1 + 1, x2 - 1, x3 - 1} U21_A(x1,x2) = max{x1, x2 - 1} take_A(x1,x2) = x1 U136_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U135_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U133_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U132_A(x1,x2,x3,x4) = max{x1 + 1, x2 - 1, x3 - 1, x4 - 1} U131_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 - 1} U121_A(x1,x2) = max{x1, x2 - 1} U114_A(x1,x2) = max{x1, x2 - 1} U112_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} U11_A(x1,x2) = max{x1, x2 - 1} U105_A(x1,x2) = max{x1, x2 - 1} U104_A(x1,x2,x3) = max{x1 + 1, x2 - 1, x3 - 1} U103_A(x1,x2,x3) = max{x1, x2 - 1, x3 - 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U101_A(x1,x2,x3) = 0 cons_A(x1,x2) = 0 U95_A(x1,x2) = 0 U94_A(x1,x2,x3) = 0 U93_A(x1,x2,x3) = 0 U92_A(x1,x2,x3) = 0 U91_A(x1,x2,x3) = 0 U61_A(x1,x2) = 0 U51_A(x1,x2) = 0 U44_A(x1,x2,x3) = 0 U43_A(x1,x2,x3) = 0 U42_A(x1,x2,x3) = 0 U41_A(x1,x2,x3) = 0 U21_A(x1,x2) = 0 take_A(x1,x2) = 0 U136_A(x1,x2,x3,x4) = 0 U135_A(x1,x2,x3,x4) = 0 U133_A(x1,x2,x3,x4) = 0 U132_A(x1,x2,x3,x4) = 0 U131_A(x1,x2,x3,x4) = 0 U121_A(x1,x2) = 0 U114_A(x1,x2) = 0 U112_A(x1,x2,x3) = 0 U11_A(x1,x2) = 0 U105_A(x1,x2) = 0 U104_A(x1,x2,x3) = 0 U103_A(x1,x2,x3) = 0 The next rules are strictly ordered: p3, p8, p13, p19, p26 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U94(X1,X2,X3)) -> mark#(X1) p4: mark#(U93(X1,X2,X3)) -> mark#(X1) p5: mark#(U92(X1,X2,X3)) -> mark#(X1) p6: mark#(U91(X1,X2,X3)) -> mark#(X1) p7: mark#(U51(X1,X2)) -> mark#(X1) p8: mark#(U44(X1,X2,X3)) -> mark#(X1) p9: mark#(U43(X1,X2,X3)) -> mark#(X1) p10: mark#(U42(X1,X2,X3)) -> mark#(X1) p11: mark#(U21(X1,X2)) -> mark#(X1) p12: mark#(take(X1,X2)) -> mark#(X1) p13: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p16: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p17: mark#(U121(X1,X2)) -> mark#(X1) p18: mark#(U114(X1,X2)) -> mark#(X1) p19: mark#(U112(X1,X2,X3)) -> mark#(X1) p20: mark#(U11(X1,X2)) -> mark#(X1) p21: mark#(U105(X1,X2)) -> mark#(X1) p22: mark#(U103(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(U103(X1,X2,X3)) -> mark#(X1) p3: mark#(U105(X1,X2)) -> mark#(X1) p4: mark#(U11(X1,X2)) -> mark#(X1) p5: mark#(U112(X1,X2,X3)) -> mark#(X1) p6: mark#(U114(X1,X2)) -> mark#(X1) p7: mark#(U121(X1,X2)) -> mark#(X1) p8: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U133(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(take(X1,X2)) -> mark#(X1) p13: mark#(U21(X1,X2)) -> mark#(X1) p14: mark#(U42(X1,X2,X3)) -> mark#(X1) p15: mark#(U43(X1,X2,X3)) -> mark#(X1) p16: mark#(U44(X1,X2,X3)) -> mark#(X1) p17: mark#(U51(X1,X2)) -> mark#(X1) p18: mark#(U91(X1,X2,X3)) -> mark#(X1) p19: mark#(U92(X1,X2,X3)) -> mark#(X1) p20: mark#(U93(X1,X2,X3)) -> mark#(X1) p21: mark#(U94(X1,X2,X3)) -> mark#(X1) p22: mark#(cons(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1} U101_A(x1,x2,x3) = max{2, x1, x2 + 1, x3 + 1} U103_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U105_A(x1,x2) = max{2, x1, x2 + 1} U11_A(x1,x2) = max{x1 + 1, x2 + 1} U112_A(x1,x2,x3) = max{x1 + 1, x2 + 1, x3 + 1} U114_A(x1,x2) = max{x1 + 1, x2 + 1} U121_A(x1,x2) = max{x1, x2 + 1} U131_A(x1,x2,x3,x4) = max{x1 + 1, x2 + 1, x3 + 1, x4 + 1} U133_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 1, x3 + 1, x4 + 1} U135_A(x1,x2,x3,x4) = max{x1, x2 + 1, x3 + 1, x4 + 1} U136_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 1, x3 + 1, x4 + 1} take_A(x1,x2) = x1 U21_A(x1,x2) = max{x1 + 1, x2 + 1} U42_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U43_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U44_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U51_A(x1,x2) = max{x1, x2 + 1} U91_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U92_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U93_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U94_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} cons_A(x1,x2) = max{x1 + 2, x2 + 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U101_A(x1,x2,x3) = 0 U103_A(x1,x2,x3) = 0 U105_A(x1,x2) = 0 U11_A(x1,x2) = 0 U112_A(x1,x2,x3) = 0 U114_A(x1,x2) = 0 U121_A(x1,x2) = 0 U131_A(x1,x2,x3,x4) = 0 U133_A(x1,x2,x3,x4) = 0 U135_A(x1,x2,x3,x4) = 0 U136_A(x1,x2,x3,x4) = 0 take_A(x1,x2) = 0 U21_A(x1,x2) = 0 U42_A(x1,x2,x3) = 0 U43_A(x1,x2,x3) = 0 U44_A(x1,x2,x3) = 0 U51_A(x1,x2) = 0 U91_A(x1,x2,x3) = 0 U92_A(x1,x2,x3) = 0 U93_A(x1,x2,x3) = 0 U94_A(x1,x2,x3) = 0 cons_A(x1,x2) = 0 The next rules are strictly ordered: p2, p9, p11, p22 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(U105(X1,X2)) -> mark#(X1) p3: mark#(U11(X1,X2)) -> mark#(X1) p4: mark#(U112(X1,X2,X3)) -> mark#(X1) p5: mark#(U114(X1,X2)) -> mark#(X1) p6: mark#(U121(X1,X2)) -> mark#(X1) p7: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(take(X1,X2)) -> mark#(X1) p10: mark#(U21(X1,X2)) -> mark#(X1) p11: mark#(U42(X1,X2,X3)) -> mark#(X1) p12: mark#(U43(X1,X2,X3)) -> mark#(X1) p13: mark#(U44(X1,X2,X3)) -> mark#(X1) p14: mark#(U51(X1,X2)) -> mark#(X1) p15: mark#(U91(X1,X2,X3)) -> mark#(X1) p16: mark#(U92(X1,X2,X3)) -> mark#(X1) p17: mark#(U93(X1,X2,X3)) -> mark#(X1) p18: mark#(U94(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(U94(X1,X2,X3)) -> mark#(X1) p3: mark#(U93(X1,X2,X3)) -> mark#(X1) p4: mark#(U92(X1,X2,X3)) -> mark#(X1) p5: mark#(U91(X1,X2,X3)) -> mark#(X1) p6: mark#(U51(X1,X2)) -> mark#(X1) p7: mark#(U44(X1,X2,X3)) -> mark#(X1) p8: mark#(U43(X1,X2,X3)) -> mark#(X1) p9: mark#(U42(X1,X2,X3)) -> mark#(X1) p10: mark#(U21(X1,X2)) -> mark#(X1) p11: mark#(take(X1,X2)) -> mark#(X1) p12: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U121(X1,X2)) -> mark#(X1) p15: mark#(U114(X1,X2)) -> mark#(X1) p16: mark#(U112(X1,X2,X3)) -> mark#(X1) p17: mark#(U11(X1,X2)) -> mark#(X1) p18: mark#(U105(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U101_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U94_A(x1,x2,x3) = max{x1 + 1, x2 + 1, x3 + 1} U93_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U92_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U91_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U51_A(x1,x2) = max{x1, x2 + 1} U44_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U43_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U42_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U21_A(x1,x2) = max{x1 + 2, x2 + 1} take_A(x1,x2) = x1 U135_A(x1,x2,x3,x4) = max{x1, x2 + 1, x3 + 1, x4 + 1} U131_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 1, x3 + 1, x4 + 1} U121_A(x1,x2) = max{x1, x2 + 1} U114_A(x1,x2) = max{x1 + 2, x2 + 1} U112_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U11_A(x1,x2) = max{x1, x2 + 1} U105_A(x1,x2) = max{x1 + 2, x2 + 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U101_A(x1,x2,x3) = 0 U94_A(x1,x2,x3) = 0 U93_A(x1,x2,x3) = 0 U92_A(x1,x2,x3) = 0 U91_A(x1,x2,x3) = 0 U51_A(x1,x2) = 0 U44_A(x1,x2,x3) = 0 U43_A(x1,x2,x3) = 0 U42_A(x1,x2,x3) = 0 U21_A(x1,x2) = 0 take_A(x1,x2) = 0 U135_A(x1,x2,x3,x4) = 0 U131_A(x1,x2,x3,x4) = 0 U121_A(x1,x2) = 0 U114_A(x1,x2) = 0 U112_A(x1,x2,x3) = 0 U11_A(x1,x2) = 0 U105_A(x1,x2) = 0 The next rules are strictly ordered: p3, p4, p5, p8, p9, p10, p13, p15, p16, p18 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(U94(X1,X2,X3)) -> mark#(X1) p3: mark#(U51(X1,X2)) -> mark#(X1) p4: mark#(U44(X1,X2,X3)) -> mark#(X1) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U121(X1,X2)) -> mark#(X1) p8: mark#(U11(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U101(X1,X2,X3)) -> mark#(X1) p2: mark#(U11(X1,X2)) -> mark#(X1) p3: mark#(U121(X1,X2)) -> mark#(X1) p4: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U44(X1,X2,X3)) -> mark#(X1) p7: mark#(U51(X1,X2)) -> mark#(X1) p8: mark#(U94(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1} U101_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U11_A(x1,x2) = max{x1 + 1, x2 + 1} U121_A(x1,x2) = max{x1 + 1, x2 + 1} U135_A(x1,x2,x3,x4) = max{2, x1, x2 + 1, x3 + 1, x4 + 1} take_A(x1,x2) = x1 U44_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U51_A(x1,x2) = max{x1 + 1, x2 + 1} U94_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U101_A(x1,x2,x3) = 0 U11_A(x1,x2) = 0 U121_A(x1,x2) = 0 U135_A(x1,x2,x3,x4) = 0 take_A(x1,x2) = 0 U44_A(x1,x2,x3) = 0 U51_A(x1,x2) = 0 U94_A(x1,x2,x3) = 0 The next rules are strictly ordered: p1, p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U121(X1,X2)) -> mark#(X1) p3: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U44(X1,X2,X3)) -> mark#(X1) p6: mark#(U51(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(U44(X1,X2,X3)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U135(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U121(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U11_A(x1,x2) = max{x1, x2 + 1} U51_A(x1,x2) = max{x1 + 1, x2 + 1} U44_A(x1,x2,x3) = max{x1 + 1, x2 + 1, x3 + 1} take_A(x1,x2) = x1 U135_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 1, x3 + 1, x4 + 1} U121_A(x1,x2) = max{x1 + 2, x2 + 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U11_A(x1,x2) = 0 U51_A(x1,x2) = 0 U44_A(x1,x2,x3) = 0 take_A(x1,x2) = 0 U135_A(x1,x2,x3,x4) = 0 U121_A(x1,x2) = 0 The next rules are strictly ordered: p5, p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(U44(X1,X2,X3)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(take(X1,X2)) -> mark#(X1) p3: mark#(U44(X1,X2,X3)) -> mark#(X1) p4: mark#(U51(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U11_A(x1,x2) = max{x1 + 1, x2 + 1} take_A(x1,x2) = max{2, x1} U44_A(x1,x2,x3) = max{x1 + 2, x2 + 1, x3 + 1} U51_A(x1,x2) = max{x1, x2 + 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U11_A(x1,x2) = 0 take_A(x1,x2) = 0 U44_A(x1,x2,x3) = 0 U51_A(x1,x2) = 0 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#(U11(X1,X2)) -> mark#(X1) p2: mark#(take(X1,X2)) -> mark#(X1) p3: mark#(U51(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(take(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2 - 1} U51_A(x1,x2) = max{x1 + 1, x2 - 1} take_A(x1,x2) = x1 + 1 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U11_A(x1,x2) = 0 U51_A(x1,x2) = 0 take_A(x1,x2) = 0 The next rules are strictly ordered: p2, p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1} U11_A(x1,x2) = max{x1 + 2, x2 + 1} 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U11_A(x1,x2) = 0 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: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p2: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p3: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) p4: a__U113#(tt(),L,N) -> a__U114#(a__isNatKind(N),L) p5: a__U114#(tt(),L) -> a__length#(mark(L)) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(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, r141, r142, r143, r144, r145, r146, r147, r148, r149, r150, r151, r152, r153, r154, r155, r156, r157, r158, r159, r160, r161, r162, r163, r164, r165, r166, r167, r168, r169, r170, r171, r172, r173, r174, r175, r176, r177 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: a__length#_A(x1) = max{0, x1 - 372} cons_A(x1,x2) = max{630, x2 + 377} a__U111#_A(x1,x2,x3) = max{6, x1 - 933, x2 + 4} a__isNatList_A(x1) = max{446, x1 + 445} tt_A = 1257 a__U112#_A(x1,x2,x3) = max{7, x1 - 971, x2 + 3} a__isNatIListKind_A(x1) = 1294 a__U113#_A(x1,x2,x3) = max{8, x1 - 986, x2 + 2} a__isNat_A(x1) = 1271 a__U114#_A(x1,x2) = max{9, x1 - 996, x2 + 1} a__isNatKind_A(x1) = 1266 mark_A(x1) = max{632, x1} a__zeros_A = 631 |0|_A = 633 zeros_A = 254 a__U101_A(x1,x2,x3) = 1297 a__U102_A(x1,x2,x3) = max{1296, x1 - 227} a__U103_A(x1,x2,x3) = 1295 a__U104_A(x1,x2,x3) = 1294 a__U105_A(x1,x2) = 1293 a__U106_A(x1) = 1257 a__isNatIList_A(x1) = max{1355, x1 + 1296} a__U11_A(x1,x2) = 1262 a__U12_A(x1,x2) = 1258 a__U111_A(x1,x2,x3) = max{x1 - 71, x2 + 376} a__U112_A(x1,x2,x3) = max{379, x1 - 109, x2 + 376} a__U113_A(x1,x2,x3) = max{1147, x1 - 1258, x2 + 376} a__U114_A(x1,x2) = max{x1 - 120, x2 + 376} s_A(x1) = max{1136, x1 + 377} a__length_A(x1) = max{374, x1 - 1} a__U13_A(x1) = 1257 a__U121_A(x1,x2) = 852 a__U122_A(x1) = 813 nil_A = 813 a__U131_A(x1,x2,x3,x4) = max{1257, x3 + 596} a__U132_A(x1,x2,x3,x4) = max{1256, x3 + 596} a__U133_A(x1,x2,x3,x4) = max{1256, x3 + 596} a__U134_A(x1,x2,x3,x4) = max{1255, x1 - 61, x3 + 596} a__U135_A(x1,x2,x3,x4) = max{628, x1 - 17, x3 + 596} a__U136_A(x1,x2,x3,x4) = max{629, x1 - 26, x3 + 596} take_A(x1,x2) = max{853, x1 + 219} a__U21_A(x1,x2) = 1271 a__U22_A(x1,x2) = max{1271, x1 - 1} a__U23_A(x1) = 1257 a__U31_A(x1,x2) = max{1262, x1 + 3} a__U32_A(x1,x2) = 1259 a__U33_A(x1) = 1258 a__U41_A(x1,x2,x3) = max{1346, x1 + 88, x3 + 1345} a__U42_A(x1,x2,x3) = max{x1 + 78, x3 + 1344} a__U43_A(x1,x2,x3) = max{1295, x1 + 40, x3 + 673} a__U44_A(x1,x2,x3) = max{636, x1 + 2, x3 + 635} a__U45_A(x1,x2) = 1258 a__U46_A(x1) = 1258 a__U51_A(x1,x2) = max{660, x1 + 28} a__U52_A(x1) = 1285 a__U61_A(x1,x2) = max{1294, x1 - 564} a__U62_A(x1) = 1294 a__U71_A(x1) = 1266 a__U81_A(x1) = max{631, x1} a__U91_A(x1,x2,x3) = max{x1 - 821, x3 + 822} a__U92_A(x1,x2,x3) = max{x1 - 816, x3 + 821} a__U93_A(x1,x2,x3) = max{x1 - 630, x3 + 820} a__U94_A(x1,x2,x3) = max{x1 - 629, x3 + 820} a__U95_A(x1,x2) = max{x1 - 642, x2 + 819} a__U96_A(x1) = max{818, x1 + 186} a__take_A(x1,x2) = max{853, x1 + 219} U101_A(x1,x2,x3) = 1297 U102_A(x1,x2,x3) = max{1296, x1 - 227} U103_A(x1,x2,x3) = 1295 U104_A(x1,x2,x3) = 1294 U105_A(x1,x2) = 1293 U106_A(x1) = 1257 isNatIList_A(x1) = max{1355, x1 + 1296} U11_A(x1,x2) = 1262 U12_A(x1,x2) = 1258 U111_A(x1,x2,x3) = max{x1 - 71, x2 + 376} U112_A(x1,x2,x3) = max{377, x1 - 109, x2 + 376} U113_A(x1,x2,x3) = max{1147, x1 - 1258, x2 + 376} U114_A(x1,x2) = max{x1 - 120, x2 + 376} length_A(x1) = max{374, x1 - 1} U13_A(x1) = 1257 U121_A(x1,x2) = 852 U122_A(x1) = 813 U131_A(x1,x2,x3,x4) = max{1257, x3 + 596} U132_A(x1,x2,x3,x4) = max{1256, x3 + 596} U133_A(x1,x2,x3,x4) = max{1256, x3 + 596} U134_A(x1,x2,x3,x4) = max{1255, x1 - 61, x3 + 596} U135_A(x1,x2,x3,x4) = max{627, x1 - 17, x3 + 596} U136_A(x1,x2,x3,x4) = max{x1 - 26, x3 + 596} U21_A(x1,x2) = 1271 U22_A(x1,x2) = max{1271, x1 - 1} U23_A(x1) = 1257 U31_A(x1,x2) = max{1262, x1 + 3} U32_A(x1,x2) = 1259 U33_A(x1) = 1258 U41_A(x1,x2,x3) = max{1346, x1 + 88, x3 + 1345} U42_A(x1,x2,x3) = max{x1 + 78, x3 + 1344} U43_A(x1,x2,x3) = max{1295, x1 + 40, x3 + 673} U44_A(x1,x2,x3) = max{636, x1 + 2, x3 + 635} U45_A(x1,x2) = 1258 U46_A(x1) = 1258 U51_A(x1,x2) = max{660, x1 + 28} U52_A(x1) = 1285 U61_A(x1,x2) = max{1294, x1 - 564} U62_A(x1) = 1294 U71_A(x1) = 1266 U81_A(x1) = max{630, x1} U91_A(x1,x2,x3) = max{x1 - 821, x3 + 822} U92_A(x1,x2,x3) = max{x1 - 816, x3 + 821} U93_A(x1,x2,x3) = max{x1 - 630, x3 + 820} U94_A(x1,x2,x3) = max{x1 - 629, x3 + 820} U95_A(x1,x2) = max{x1 - 642, x2 + 819} U96_A(x1) = max{818, x1 + 186} isNatKind_A(x1) = 1266 isNatIListKind_A(x1) = 1294 isNat_A(x1) = 1271 isNatList_A(x1) = x1 + 445 2. max/plus interpretations on natural numbers: a__length#_A(x1) = 3 cons_A(x1,x2) = 3 a__U111#_A(x1,x2,x3) = 4 a__isNatList_A(x1) = 11 tt_A = 10 a__U112#_A(x1,x2,x3) = 0 a__isNatIListKind_A(x1) = 21 a__U113#_A(x1,x2,x3) = 1 a__isNat_A(x1) = 9 a__U114#_A(x1,x2) = 2 a__isNatKind_A(x1) = 23 mark_A(x1) = 24 a__zeros_A = 4 |0|_A = 6 zeros_A = 5 a__U101_A(x1,x2,x3) = 23 a__U102_A(x1,x2,x3) = 24 a__U103_A(x1,x2,x3) = 1 a__U104_A(x1,x2,x3) = 2 a__U105_A(x1,x2) = 24 a__U106_A(x1) = 23 a__isNatIList_A(x1) = 12 a__U11_A(x1,x2) = 21 a__U12_A(x1,x2) = 22 a__U111_A(x1,x2,x3) = 5 a__U112_A(x1,x2,x3) = 5 a__U113_A(x1,x2,x3) = 4 a__U114_A(x1,x2) = 4 s_A(x1) = 3 a__length_A(x1) = 6 a__U13_A(x1) = 23 a__U121_A(x1,x2) = 19 a__U122_A(x1) = 19 nil_A = 8 a__U131_A(x1,x2,x3,x4) = 22 a__U132_A(x1,x2,x3,x4) = 21 a__U133_A(x1,x2,x3,x4) = 6 a__U134_A(x1,x2,x3,x4) = 5 a__U135_A(x1,x2,x3,x4) = 4 a__U136_A(x1,x2,x3,x4) = 4 take_A(x1,x2) = 18 a__U21_A(x1,x2) = 8 a__U22_A(x1,x2) = 7 a__U23_A(x1) = 24 a__U31_A(x1,x2) = 13 a__U32_A(x1,x2) = 13 a__U33_A(x1) = 23 a__U41_A(x1,x2,x3) = 13 a__U42_A(x1,x2,x3) = 22 a__U43_A(x1,x2,x3) = 23 a__U44_A(x1,x2,x3) = 1 a__U45_A(x1,x2) = 10 a__U46_A(x1) = 9 a__U51_A(x1,x2) = 9 a__U52_A(x1) = 8 a__U61_A(x1,x2) = 12 a__U62_A(x1) = 11 a__U71_A(x1) = 15 a__U81_A(x1) = 22 a__U91_A(x1,x2,x3) = 10 a__U92_A(x1,x2,x3) = 0 a__U93_A(x1,x2,x3) = 2 a__U94_A(x1,x2,x3) = 1 a__U95_A(x1,x2) = 7 a__U96_A(x1) = 10 a__take_A(x1,x2) = 23 U101_A(x1,x2,x3) = 22 U102_A(x1,x2,x3) = 18 U103_A(x1,x2,x3) = 0 U104_A(x1,x2,x3) = 0 U105_A(x1,x2) = 18 U106_A(x1) = 15 isNatIList_A(x1) = 12 U11_A(x1,x2) = 15 U12_A(x1,x2) = 16 U111_A(x1,x2,x3) = 4 U112_A(x1,x2,x3) = 4 U113_A(x1,x2,x3) = 0 U114_A(x1,x2) = 0 length_A(x1) = 6 U13_A(x1) = 23 U121_A(x1,x2) = 18 U122_A(x1) = 17 U131_A(x1,x2,x3,x4) = 22 U132_A(x1,x2,x3,x4) = 20 U133_A(x1,x2,x3,x4) = 0 U134_A(x1,x2,x3,x4) = 4 U135_A(x1,x2,x3,x4) = 0 U136_A(x1,x2,x3,x4) = 3 U21_A(x1,x2) = 0 U22_A(x1,x2) = 1 U23_A(x1) = 0 U31_A(x1,x2) = 7 U32_A(x1,x2) = 12 U33_A(x1) = 0 U41_A(x1,x2,x3) = 6 U42_A(x1,x2,x3) = 21 U43_A(x1,x2,x3) = 22 U44_A(x1,x2,x3) = 0 U45_A(x1,x2) = 4 U46_A(x1) = 0 U51_A(x1,x2) = 3 U52_A(x1) = 0 U61_A(x1,x2) = 6 U62_A(x1) = 3 U71_A(x1) = 15 U81_A(x1) = 14 U91_A(x1,x2,x3) = 4 U92_A(x1,x2,x3) = 0 U93_A(x1,x2,x3) = 1 U94_A(x1,x2,x3) = 0 U95_A(x1,x2) = 0 U96_A(x1) = 4 isNatKind_A(x1) = 23 isNatIListKind_A(x1) = 21 isNat_A(x1) = 9 isNatList_A(x1) = 0 The next rules are strictly ordered: p1, p2, p3, p4, p5 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: a__U101#(tt(),V1,V2) -> a__U102#(a__isNatKind(V1),V1,V2) p2: a__U102#(tt(),V1,V2) -> a__U103#(a__isNatIListKind(V2),V1,V2) p3: a__U103#(tt(),V1,V2) -> a__U104#(a__isNatIListKind(V2),V1,V2) p4: a__U104#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p6: a__U21#(tt(),V1) -> a__U22#(a__isNatKind(V1),V1) p7: a__U22#(tt(),V1) -> a__isNat#(V1) p8: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p9: a__U11#(tt(),V1) -> a__U12#(a__isNatIListKind(V1),V1) p10: a__U12#(tt(),V1) -> a__isNatList#(V1) p11: a__isNatList#(take(V1,V2)) -> a__U101#(a__isNatKind(V1),V1,V2) p12: a__isNatList#(cons(V1,V2)) -> a__U91#(a__isNatKind(V1),V1,V2) p13: a__U91#(tt(),V1,V2) -> a__U92#(a__isNatKind(V1),V1,V2) p14: a__U92#(tt(),V1,V2) -> a__U93#(a__isNatIListKind(V2),V1,V2) p15: a__U93#(tt(),V1,V2) -> a__U94#(a__isNatIListKind(V2),V1,V2) p16: a__U94#(tt(),V1,V2) -> a__isNat#(V1) p17: a__U94#(tt(),V1,V2) -> a__U95#(a__isNat(V1),V2) p18: a__U95#(tt(),V2) -> a__isNatList#(V2) p19: a__U104#(tt(),V1,V2) -> a__U105#(a__isNat(V1),V2) p20: a__U105#(tt(),V2) -> a__isNatIList#(V2) p21: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNatKind(V1),V1,V2) p22: a__U41#(tt(),V1,V2) -> a__U42#(a__isNatKind(V1),V1,V2) p23: a__U42#(tt(),V1,V2) -> a__U43#(a__isNatIListKind(V2),V1,V2) p24: a__U43#(tt(),V1,V2) -> a__U44#(a__isNatIListKind(V2),V1,V2) p25: a__U44#(tt(),V1,V2) -> a__isNat#(V1) p26: a__U44#(tt(),V1,V2) -> a__U45#(a__isNat(V1),V2) p27: a__U45#(tt(),V2) -> a__isNatIList#(V2) p28: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V) p29: a__U31#(tt(),V) -> a__U32#(a__isNatIListKind(V),V) p30: a__U32#(tt(),V) -> a__isNatList#(V) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r13, r16, 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, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r143, r144, r154, r155, r156, r157, r158, r159, r160, r161, r162, r163, r164, r165, r166, r167, r168, r169, r170, r171, r172, r173, r174, r175, r176, r177 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: a__U101#_A(x1,x2,x3) = max{x1 - 4, x2 + 38, x3 + 51} tt_A = 40 a__U102#_A(x1,x2,x3) = max{x1 - 5, x2 + 6, x3 + 50} a__isNatKind_A(x1) = max{6, x1 + 4} a__U103#_A(x1,x2,x3) = max{x1 + 32, x2 + 5, x3 + 49} a__isNatIListKind_A(x1) = max{4, x1 + 1} a__U104#_A(x1,x2,x3) = max{x1 + 4, x2 + 4, x3 + 48} a__isNat#_A(x1) = max{47, x1 - 1} s_A(x1) = max{53, x1 + 51} a__U21#_A(x1,x2) = max{51, x1 + 40, x2 + 49} a__U22#_A(x1,x2) = max{x1 + 6, x2 + 48} length_A(x1) = x1 + 88 a__U11#_A(x1,x2) = max{x1 + 44, x2 + 86} a__U12#_A(x1,x2) = max{x1 + 81, x2 + 6} a__isNatList#_A(x1) = max{5, x1 - 1} take_A(x1,x2) = max{55, x1 + 53, x2 + 53} cons_A(x1,x2) = max{x1 + 51, x2 + 90} a__U91#_A(x1,x2,x3) = max{x1 - 2, x2 + 49, x3 + 52} a__U92#_A(x1,x2,x3) = max{x1 + 45, x2 + 48, x3 + 8} a__U93#_A(x1,x2,x3) = max{x1 + 7, x2 + 48, x3 + 8} a__U94#_A(x1,x2,x3) = max{x1 + 6, x2 + 48, x3 + 7} a__U95#_A(x1,x2) = max{x1 - 36, x2 + 6} a__isNat_A(x1) = max{13, x1 + 1} a__U105#_A(x1,x2) = max{x1 - 6, x2 + 9} a__isNatIList#_A(x1) = x1 + 8 a__U41#_A(x1,x2,x3) = max{x1 + 5, x2 + 19, x3 + 21} a__U42#_A(x1,x2,x3) = max{x1 - 20, x2 + 18, x3 + 20} a__U43#_A(x1,x2,x3) = max{x1 + 15, x2 + 17, x3 + 17} a__U44#_A(x1,x2,x3) = max{x1 + 12, x2, x3 + 10} a__U45#_A(x1,x2) = max{x1 - 2, x2 + 9} a__U31#_A(x1,x2) = max{x1 - 35, x2 + 7} a__U32#_A(x1,x2) = max{x1 + 2, x2 + 6} a__U46_A(x1) = 41 U46_A(x1) = 40 a__U45_A(x1,x2) = 45 a__isNatIList_A(x1) = max{54, x1 + 52} U45_A(x1,x2) = 43 a__U44_A(x1,x2,x3) = max{46, x1 + 35} U44_A(x1,x2,x3) = 46 a__U33_A(x1) = max{39, x1 + 1} a__U43_A(x1,x2,x3) = max{x1 + 44, x3 + 47} U33_A(x1) = max{39, x1} U43_A(x1,x2,x3) = max{43, x1, x3} a__U32_A(x1,x2) = x2 + 40 a__isNatList_A(x1) = x1 + 36 a__U42_A(x1,x2,x3) = x3 + 48 U32_A(x1,x2) = x2 + 40 U42_A(x1,x2,x3) = x3 + 48 a__U31_A(x1,x2) = max{53, x1 + 43, x2 + 41} a__U41_A(x1,x2,x3) = x3 + 48 U31_A(x1,x2) = max{x1 + 43, x2 + 40} U41_A(x1,x2,x3) = x3 + 48 a__U106_A(x1) = max{41, x1 - 54} a__U96_A(x1) = max{41, x1 - 24} zeros_A = 40 U106_A(x1) = max{0, x1 - 55} isNatIList_A(x1) = max{0, x1 - 1} U96_A(x1) = 41 a__U105_A(x1,x2) = max{x1 + 17, x2 + 30} a__U95_A(x1,x2) = max{x1 + 2, x2 + 13} U105_A(x1,x2) = max{x1, x2} U95_A(x1,x2) = max{x1, x2} a__U104_A(x1,x2,x3) = max{x1 + 4, x2 + 31, x3 + 31} a__U94_A(x1,x2,x3) = max{16, x2 + 10, x3 + 14} U104_A(x1,x2,x3) = max{x1 + 3, x2 + 30, x3} U94_A(x1,x2,x3) = max{16, x3 + 14} a__U103_A(x1,x2,x3) = max{x1 + 1, x2 + 31, x3 + 31} a__U93_A(x1,x2,x3) = max{x1 + 15, x2 + 25, x3 + 20} U103_A(x1,x2,x3) = max{x1, x2 + 30, x3 + 30} U93_A(x1,x2,x3) = max{16, x1 + 14, x2} a__U102_A(x1,x2,x3) = max{x1 + 8, x2 + 32, x3 + 32} a__U92_A(x1,x2,x3) = max{x1 + 20, x2 + 26, x3 + 20} U102_A(x1,x2,x3) = max{x1 + 7, x2} U92_A(x1,x2,x3) = max{x1 + 19, x2 + 26, x3} a__U101_A(x1,x2,x3) = max{x1 + 84, x2 + 35, x3 + 33} a__U91_A(x1,x2,x3) = max{x1 + 29, x2 + 27, x3 + 29} U101_A(x1,x2,x3) = max{34, x1, x2, x3 + 32} U91_A(x1,x2,x3) = max{28, x1, x3} a__U13_A(x1) = x1 + 1 a__U23_A(x1) = max{41, x1 + 28} nil_A = 40 U13_A(x1) = x1 + 1 isNatList_A(x1) = max{0, x1 - 1} U23_A(x1) = max{27, x1 + 26} a__U12_A(x1,x2) = max{x1 + 1, x2 + 38} a__U22_A(x1,x2) = max{x1 + 1, x2 + 41} a__U52_A(x1) = x1 + 86 a__U62_A(x1) = x1 + 1 U12_A(x1,x2) = max{x1, x2} U22_A(x1,x2) = max{x1 + 1, x2} U52_A(x1) = x1 U62_A(x1) = x1 a__U11_A(x1,x2) = max{89, x1 + 85, x2 + 39} a__U21_A(x1,x2) = max{x1 + 45, x2 + 47} a__U51_A(x1,x2) = x2 + 91 a__U61_A(x1,x2) = max{x1 - 40, x2 + 6} a__U71_A(x1) = x1 + 1 a__U81_A(x1) = max{41, x1 - 1} U11_A(x1,x2) = max{x1 + 85, x2 + 39} U21_A(x1,x2) = max{x1 + 45, x2 + 47} U51_A(x1,x2) = x2 + 90 U61_A(x1,x2) = x2 + 5 U71_A(x1) = x1 U81_A(x1) = max{0, x1 - 2} |0|_A = 40 isNatKind_A(x1) = x1 + 3 isNatIListKind_A(x1) = x1 isNat_A(x1) = x1 2. max/plus interpretations on natural numbers: a__U101#_A(x1,x2,x3) = 8 tt_A = 11 a__U102#_A(x1,x2,x3) = 7 a__isNatKind_A(x1) = 12 a__U103#_A(x1,x2,x3) = 6 a__isNatIListKind_A(x1) = 12 a__U104#_A(x1,x2,x3) = 5 a__isNat#_A(x1) = 4 s_A(x1) = 0 a__U21#_A(x1,x2) = 1 a__U22#_A(x1,x2) = 0 length_A(x1) = max{0, x1 - 12} a__U11#_A(x1,x2) = 3 a__U12#_A(x1,x2) = 1 a__isNatList#_A(x1) = 0 take_A(x1,x2) = 2 cons_A(x1,x2) = 8 a__U91#_A(x1,x2,x3) = 16 a__U92#_A(x1,x2,x3) = 7 a__U93#_A(x1,x2,x3) = 6 a__U94#_A(x1,x2,x3) = 5 a__U95#_A(x1,x2) = 4 a__isNat_A(x1) = 12 a__U105#_A(x1,x2) = 4 a__isNatIList#_A(x1) = 3 a__U41#_A(x1,x2,x3) = 8 a__U42#_A(x1,x2,x3) = 7 a__U43#_A(x1,x2,x3) = 6 a__U44#_A(x1,x2,x3) = 5 a__U45#_A(x1,x2) = 4 a__U31#_A(x1,x2) = 2 a__U32#_A(x1,x2) = 1 a__U46_A(x1) = 12 U46_A(x1) = 13 a__U45_A(x1,x2) = 3 a__isNatIList_A(x1) = 5 U45_A(x1,x2) = 4 a__U44_A(x1,x2,x3) = 2 U44_A(x1,x2,x3) = 0 a__U33_A(x1) = 10 a__U43_A(x1,x2,x3) = 1 U33_A(x1) = 9 U43_A(x1,x2,x3) = 0 a__U32_A(x1,x2) = 9 a__isNatList_A(x1) = max{2, x1} a__U42_A(x1,x2,x3) = 2 U32_A(x1,x2) = 0 U42_A(x1,x2,x3) = 0 a__U31_A(x1,x2) = 8 a__U41_A(x1,x2,x3) = 6 U31_A(x1,x2) = 0 U41_A(x1,x2,x3) = 5 a__U106_A(x1) = 12 a__U96_A(x1) = 5 zeros_A = 0 U106_A(x1) = 13 isNatIList_A(x1) = 6 U96_A(x1) = 0 a__U105_A(x1,x2) = 7 a__U95_A(x1,x2) = 4 U105_A(x1,x2) = 8 U95_A(x1,x2) = 5 a__U104_A(x1,x2,x3) = 0 a__U94_A(x1,x2,x3) = 1 U104_A(x1,x2,x3) = 1 U94_A(x1,x2,x3) = 0 a__U103_A(x1,x2,x3) = 5 a__U93_A(x1,x2,x3) = 0 U103_A(x1,x2,x3) = 6 U93_A(x1,x2,x3) = 1 a__U102_A(x1,x2,x3) = 4 a__U92_A(x1,x2,x3) = 10 U102_A(x1,x2,x3) = 5 U92_A(x1,x2,x3) = 0 a__U101_A(x1,x2,x3) = 3 a__U91_A(x1,x2,x3) = 9 U101_A(x1,x2,x3) = 4 U91_A(x1,x2,x3) = 10 a__U13_A(x1) = x1 + 12 a__U23_A(x1) = 12 nil_A = 12 U13_A(x1) = 11 isNatList_A(x1) = 3 U23_A(x1) = 13 a__U12_A(x1,x2) = 9 a__U22_A(x1,x2) = 14 a__U52_A(x1) = max{10, x1 + 1} a__U62_A(x1) = max{10, x1 + 1} U12_A(x1,x2) = 10 U22_A(x1,x2) = 0 U52_A(x1) = max{11, x1 + 2} U62_A(x1) = max{11, x1 + 2} a__U11_A(x1,x2) = 8 a__U21_A(x1,x2) = 13 a__U51_A(x1,x2) = 9 a__U61_A(x1,x2) = 9 a__U71_A(x1) = max{15, x1 + 3} a__U81_A(x1) = 15 U11_A(x1,x2) = 0 U21_A(x1,x2) = 0 U51_A(x1,x2) = 10 U61_A(x1,x2) = 10 U71_A(x1) = max{16, x1 + 4} U81_A(x1) = 16 |0|_A = 0 isNatKind_A(x1) = max{13, x1} isNatIListKind_A(x1) = max{13, x1 - 1} isNat_A(x1) = x1 + 15 The next rules are strictly ordered: 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 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: a__isNatIListKind#(take(V1,V2)) -> a__isNatKind#(V1) p2: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p3: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p4: a__isNatIListKind#(take(V1,V2)) -> a__U61#(a__isNatKind(V1),V2) p5: a__U61#(tt(),V2) -> a__isNatIListKind#(V2) p6: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p7: a__isNatIListKind#(cons(V1,V2)) -> a__U51#(a__isNatKind(V1),V2) p8: a__U51#(tt(),V2) -> a__isNatIListKind#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U101(tt(),V1,V2) -> a__U102(a__isNatKind(V1),V1,V2) r3: a__U102(tt(),V1,V2) -> a__U103(a__isNatIListKind(V2),V1,V2) r4: a__U103(tt(),V1,V2) -> a__U104(a__isNatIListKind(V2),V1,V2) r5: a__U104(tt(),V1,V2) -> a__U105(a__isNat(V1),V2) r6: a__U105(tt(),V2) -> a__U106(a__isNatIList(V2)) r7: a__U106(tt()) -> tt() r8: a__U11(tt(),V1) -> a__U12(a__isNatIListKind(V1),V1) r9: a__U111(tt(),L,N) -> a__U112(a__isNatIListKind(L),L,N) r10: a__U112(tt(),L,N) -> a__U113(a__isNat(N),L,N) r11: a__U113(tt(),L,N) -> a__U114(a__isNatKind(N),L) r12: a__U114(tt(),L) -> s(a__length(mark(L))) r13: a__U12(tt(),V1) -> a__U13(a__isNatList(V1)) r14: a__U121(tt(),IL) -> a__U122(a__isNatIListKind(IL)) r15: a__U122(tt()) -> nil() r16: a__U13(tt()) -> tt() r17: a__U131(tt(),IL,M,N) -> a__U132(a__isNatIListKind(IL),IL,M,N) r18: a__U132(tt(),IL,M,N) -> a__U133(a__isNat(M),IL,M,N) r19: a__U133(tt(),IL,M,N) -> a__U134(a__isNatKind(M),IL,M,N) r20: a__U134(tt(),IL,M,N) -> a__U135(a__isNat(N),IL,M,N) r21: a__U135(tt(),IL,M,N) -> a__U136(a__isNatKind(N),IL,M,N) r22: a__U136(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r23: a__U21(tt(),V1) -> a__U22(a__isNatKind(V1),V1) r24: a__U22(tt(),V1) -> a__U23(a__isNat(V1)) r25: a__U23(tt()) -> tt() r26: a__U31(tt(),V) -> a__U32(a__isNatIListKind(V),V) r27: a__U32(tt(),V) -> a__U33(a__isNatList(V)) r28: a__U33(tt()) -> tt() r29: a__U41(tt(),V1,V2) -> a__U42(a__isNatKind(V1),V1,V2) r30: a__U42(tt(),V1,V2) -> a__U43(a__isNatIListKind(V2),V1,V2) r31: a__U43(tt(),V1,V2) -> a__U44(a__isNatIListKind(V2),V1,V2) r32: a__U44(tt(),V1,V2) -> a__U45(a__isNat(V1),V2) r33: a__U45(tt(),V2) -> a__U46(a__isNatIList(V2)) r34: a__U46(tt()) -> tt() r35: a__U51(tt(),V2) -> a__U52(a__isNatIListKind(V2)) r36: a__U52(tt()) -> tt() r37: a__U61(tt(),V2) -> a__U62(a__isNatIListKind(V2)) r38: a__U62(tt()) -> tt() r39: a__U71(tt()) -> tt() r40: a__U81(tt()) -> tt() r41: a__U91(tt(),V1,V2) -> a__U92(a__isNatKind(V1),V1,V2) r42: a__U92(tt(),V1,V2) -> a__U93(a__isNatIListKind(V2),V1,V2) r43: a__U93(tt(),V1,V2) -> a__U94(a__isNatIListKind(V2),V1,V2) r44: a__U94(tt(),V1,V2) -> a__U95(a__isNat(V1),V2) r45: a__U95(tt(),V2) -> a__U96(a__isNatList(V2)) r46: a__U96(tt()) -> tt() r47: a__isNat(|0|()) -> tt() r48: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r49: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r50: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r51: a__isNatIList(zeros()) -> tt() r52: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNatKind(V1),V1,V2) r53: a__isNatIListKind(nil()) -> tt() r54: a__isNatIListKind(zeros()) -> tt() r55: a__isNatIListKind(cons(V1,V2)) -> a__U51(a__isNatKind(V1),V2) r56: a__isNatIListKind(take(V1,V2)) -> a__U61(a__isNatKind(V1),V2) r57: a__isNatKind(|0|()) -> tt() r58: a__isNatKind(length(V1)) -> a__U71(a__isNatIListKind(V1)) r59: a__isNatKind(s(V1)) -> a__U81(a__isNatKind(V1)) r60: a__isNatList(nil()) -> tt() r61: a__isNatList(cons(V1,V2)) -> a__U91(a__isNatKind(V1),V1,V2) r62: a__isNatList(take(V1,V2)) -> a__U101(a__isNatKind(V1),V1,V2) r63: a__length(nil()) -> |0|() r64: a__length(cons(N,L)) -> a__U111(a__isNatList(L),L,N) r65: a__take(|0|(),IL) -> a__U121(a__isNatIList(IL),IL) r66: a__take(s(M),cons(N,IL)) -> a__U131(a__isNatIList(IL),IL,M,N) r67: mark(zeros()) -> a__zeros() r68: mark(U101(X1,X2,X3)) -> a__U101(mark(X1),X2,X3) r69: mark(U102(X1,X2,X3)) -> a__U102(mark(X1),X2,X3) r70: mark(isNatKind(X)) -> a__isNatKind(X) r71: mark(U103(X1,X2,X3)) -> a__U103(mark(X1),X2,X3) r72: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r73: mark(U104(X1,X2,X3)) -> a__U104(mark(X1),X2,X3) r74: mark(U105(X1,X2)) -> a__U105(mark(X1),X2) r75: mark(isNat(X)) -> a__isNat(X) r76: mark(U106(X)) -> a__U106(mark(X)) r77: mark(isNatIList(X)) -> a__isNatIList(X) r78: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r79: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r80: mark(U111(X1,X2,X3)) -> a__U111(mark(X1),X2,X3) r81: mark(U112(X1,X2,X3)) -> a__U112(mark(X1),X2,X3) r82: mark(U113(X1,X2,X3)) -> a__U113(mark(X1),X2,X3) r83: mark(U114(X1,X2)) -> a__U114(mark(X1),X2) r84: mark(length(X)) -> a__length(mark(X)) r85: mark(U13(X)) -> a__U13(mark(X)) r86: mark(isNatList(X)) -> a__isNatList(X) r87: mark(U121(X1,X2)) -> a__U121(mark(X1),X2) r88: mark(U122(X)) -> a__U122(mark(X)) r89: mark(U131(X1,X2,X3,X4)) -> a__U131(mark(X1),X2,X3,X4) r90: mark(U132(X1,X2,X3,X4)) -> a__U132(mark(X1),X2,X3,X4) r91: mark(U133(X1,X2,X3,X4)) -> a__U133(mark(X1),X2,X3,X4) r92: mark(U134(X1,X2,X3,X4)) -> a__U134(mark(X1),X2,X3,X4) r93: mark(U135(X1,X2,X3,X4)) -> a__U135(mark(X1),X2,X3,X4) r94: mark(U136(X1,X2,X3,X4)) -> a__U136(mark(X1),X2,X3,X4) r95: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r96: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r97: mark(U22(X1,X2)) -> a__U22(mark(X1),X2) r98: mark(U23(X)) -> a__U23(mark(X)) r99: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r100: mark(U32(X1,X2)) -> a__U32(mark(X1),X2) r101: mark(U33(X)) -> a__U33(mark(X)) r102: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r103: mark(U42(X1,X2,X3)) -> a__U42(mark(X1),X2,X3) r104: mark(U43(X1,X2,X3)) -> a__U43(mark(X1),X2,X3) r105: mark(U44(X1,X2,X3)) -> a__U44(mark(X1),X2,X3) r106: mark(U45(X1,X2)) -> a__U45(mark(X1),X2) r107: mark(U46(X)) -> a__U46(mark(X)) r108: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r109: mark(U52(X)) -> a__U52(mark(X)) r110: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r111: mark(U62(X)) -> a__U62(mark(X)) r112: mark(U71(X)) -> a__U71(mark(X)) r113: mark(U81(X)) -> a__U81(mark(X)) r114: mark(U91(X1,X2,X3)) -> a__U91(mark(X1),X2,X3) r115: mark(U92(X1,X2,X3)) -> a__U92(mark(X1),X2,X3) r116: mark(U93(X1,X2,X3)) -> a__U93(mark(X1),X2,X3) r117: mark(U94(X1,X2,X3)) -> a__U94(mark(X1),X2,X3) r118: mark(U95(X1,X2)) -> a__U95(mark(X1),X2) r119: mark(U96(X)) -> a__U96(mark(X)) r120: mark(cons(X1,X2)) -> cons(mark(X1),X2) r121: mark(|0|()) -> |0|() r122: mark(tt()) -> tt() r123: mark(s(X)) -> s(mark(X)) r124: mark(nil()) -> nil() r125: a__zeros() -> zeros() r126: a__U101(X1,X2,X3) -> U101(X1,X2,X3) r127: a__U102(X1,X2,X3) -> U102(X1,X2,X3) r128: a__isNatKind(X) -> isNatKind(X) r129: a__U103(X1,X2,X3) -> U103(X1,X2,X3) r130: a__isNatIListKind(X) -> isNatIListKind(X) r131: a__U104(X1,X2,X3) -> U104(X1,X2,X3) r132: a__U105(X1,X2) -> U105(X1,X2) r133: a__isNat(X) -> isNat(X) r134: a__U106(X) -> U106(X) r135: a__isNatIList(X) -> isNatIList(X) r136: a__U11(X1,X2) -> U11(X1,X2) r137: a__U12(X1,X2) -> U12(X1,X2) r138: a__U111(X1,X2,X3) -> U111(X1,X2,X3) r139: a__U112(X1,X2,X3) -> U112(X1,X2,X3) r140: a__U113(X1,X2,X3) -> U113(X1,X2,X3) r141: a__U114(X1,X2) -> U114(X1,X2) r142: a__length(X) -> length(X) r143: a__U13(X) -> U13(X) r144: a__isNatList(X) -> isNatList(X) r145: a__U121(X1,X2) -> U121(X1,X2) r146: a__U122(X) -> U122(X) r147: a__U131(X1,X2,X3,X4) -> U131(X1,X2,X3,X4) r148: a__U132(X1,X2,X3,X4) -> U132(X1,X2,X3,X4) r149: a__U133(X1,X2,X3,X4) -> U133(X1,X2,X3,X4) r150: a__U134(X1,X2,X3,X4) -> U134(X1,X2,X3,X4) r151: a__U135(X1,X2,X3,X4) -> U135(X1,X2,X3,X4) r152: a__U136(X1,X2,X3,X4) -> U136(X1,X2,X3,X4) r153: a__take(X1,X2) -> take(X1,X2) r154: a__U21(X1,X2) -> U21(X1,X2) r155: a__U22(X1,X2) -> U22(X1,X2) r156: a__U23(X) -> U23(X) r157: a__U31(X1,X2) -> U31(X1,X2) r158: a__U32(X1,X2) -> U32(X1,X2) r159: a__U33(X) -> U33(X) r160: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r161: a__U42(X1,X2,X3) -> U42(X1,X2,X3) r162: a__U43(X1,X2,X3) -> U43(X1,X2,X3) r163: a__U44(X1,X2,X3) -> U44(X1,X2,X3) r164: a__U45(X1,X2) -> U45(X1,X2) r165: a__U46(X) -> U46(X) r166: a__U51(X1,X2) -> U51(X1,X2) r167: a__U52(X) -> U52(X) r168: a__U61(X1,X2) -> U61(X1,X2) r169: a__U62(X) -> U62(X) r170: a__U71(X) -> U71(X) r171: a__U81(X) -> U81(X) r172: a__U91(X1,X2,X3) -> U91(X1,X2,X3) r173: a__U92(X1,X2,X3) -> U92(X1,X2,X3) r174: a__U93(X1,X2,X3) -> U93(X1,X2,X3) r175: a__U94(X1,X2,X3) -> U94(X1,X2,X3) r176: a__U95(X1,X2) -> U95(X1,X2) r177: a__U96(X) -> U96(X) The set of usable rules consists of r35, r36, r37, r38, r39, r40, r53, r54, r55, r56, r57, r58, r59, r128, r130, r166, r167, r168, r169, r170, r171 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: a__isNatIListKind#_A(x1) = x1 + 1 take_A(x1,x2) = max{x1 + 8, x2 + 10} a__isNatKind#_A(x1) = x1 + 8 s_A(x1) = x1 + 4 length_A(x1) = x1 + 3 a__U61#_A(x1,x2) = max{10, x1 + 4, x2 + 2} a__isNatKind_A(x1) = x1 + 2 tt_A = 4 cons_A(x1,x2) = max{x1 + 8, x2 + 6} a__U51#_A(x1,x2) = max{x1 - 2, x2 + 2} a__U52_A(x1) = x1 + 5 a__U62_A(x1) = x1 + 6 U52_A(x1) = x1 + 4 U62_A(x1) = max{6, x1 + 5} a__U51_A(x1,x2) = max{x1 + 2, x2 + 8} a__isNatIListKind_A(x1) = x1 + 3 a__U61_A(x1,x2) = max{x1 + 5, x2 + 9} U51_A(x1,x2) = max{x1, x2} U61_A(x1,x2) = max{x1, x2} a__U71_A(x1) = x1 + 1 a__U81_A(x1) = max{5, x1 - 1} nil_A = 2 zeros_A = 2 isNatIListKind_A(x1) = x1 + 1 U71_A(x1) = x1 U81_A(x1) = max{0, x1 - 2} |0|_A = 3 isNatKind_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: a__isNatIListKind#_A(x1) = max{3, x1} take_A(x1,x2) = 5 a__isNatKind#_A(x1) = x1 s_A(x1) = x1 + 1 length_A(x1) = x1 + 4 a__U61#_A(x1,x2) = 4 a__isNatKind_A(x1) = x1 tt_A = 2 cons_A(x1,x2) = 3 a__U51#_A(x1,x2) = 4 a__U52_A(x1) = x1 + 1 a__U62_A(x1) = x1 + 1 U52_A(x1) = x1 U62_A(x1) = 1 a__U51_A(x1,x2) = 4 a__isNatIListKind_A(x1) = 3 a__U61_A(x1,x2) = 5 U51_A(x1,x2) = 5 U61_A(x1,x2) = 6 a__U71_A(x1) = max{5, x1 + 1} a__U81_A(x1) = 3 nil_A = 1 zeros_A = 1 isNatIListKind_A(x1) = max{4, x1 + 3} U71_A(x1) = max{6, x1 + 2} U81_A(x1) = 4 |0|_A = 3 isNatKind_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8 We remove them from the problem. Then no dependency pair remains.