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: max/plus interpretations on natural numbers: a__U136#_A(x1,x2,x3,x4) = x4 + 18 tt_A = 0 mark#_A(x1) = max{18, x1 + 1} s_A(x1) = max{60, x1} cons_A(x1,x2) = max{x1, x2} U96_A(x1) = max{18, x1} U95_A(x1,x2) = max{x1, x2 + 22} U94_A(x1,x2,x3) = max{x1, x2 + 9, x3 + 22} U93_A(x1,x2,x3) = max{x1 + 11, x2 + 9, x3 + 22} U92_A(x1,x2,x3) = max{x1 + 11, x2 + 9, x3 + 22} U91_A(x1,x2,x3) = max{x1 + 7, x2 + 18, x3 + 22} U81_A(x1) = x1 U71_A(x1) = x1 U62_A(x1) = max{1, x1} U61_A(x1,x2) = max{11, x1} U52_A(x1) = max{11, x1} U51_A(x1,x2) = max{11, x1} U46_A(x1) = max{21, x1} U45_A(x1,x2) = max{x1 + 18, x2 + 24} U44_A(x1,x2,x3) = max{x1 + 13, x2 - 1, x3 + 24} U43_A(x1,x2,x3) = max{x1 + 2, x2 - 1, x3 + 24} U42_A(x1,x2,x3) = max{x1, x2 - 1, x3 + 24} U41_A(x1,x2,x3) = max{x1 + 9, x2 + 11, x3 + 24} U33_A(x1) = max{2, x1 + 1} U32_A(x1,x2) = max{x1, x2 + 23} U31_A(x1,x2) = max{24, x1, x2 + 23} U23_A(x1) = x1 U22_A(x1,x2) = max{x1 + 3, x2 - 38} U21_A(x1,x2) = max{17, x1 + 1, x2 - 38} take_A(x1,x2) = max{x1, x2 + 26} a__take#_A(x1,x2) = max{x1 + 1, x2 + 27} mark_A(x1) = x1 a__U131#_A(x1,x2,x3,x4) = max{x2 + 27, x4 + 19} a__isNatIList_A(x1) = x1 + 24 a__U132#_A(x1,x2,x3,x4) = max{x2 + 18, x4 + 19} a__isNatIListKind_A(x1) = 11 a__U133#_A(x1,x2,x3,x4) = max{x2 + 12, x4 + 19} a__isNat_A(x1) = max{0, x1 - 38} a__U134#_A(x1,x2,x3,x4) = max{x1 + 1, x2 + 12, x4 + 19} a__isNatKind_A(x1) = 11 a__U135#_A(x1,x2,x3,x4) = x4 + 18 U136_A(x1,x2,x3,x4) = max{x1, x2 + 26, x3, x4 + 18} U135_A(x1,x2,x3,x4) = max{x1 + 38, x2 + 26, x3, x4 + 18} U134_A(x1,x2,x3,x4) = max{38, x1, x2 + 26, x3, x4 + 19} U133_A(x1,x2,x3,x4) = max{x1 + 38, x2 + 26, x3, x4 + 19} U132_A(x1,x2,x3,x4) = max{38, x1, x2 + 26, x3, x4 + 26} U131_A(x1,x2,x3,x4) = max{38, x1, x2 + 26, x3, x4 + 26} U122_A(x1) = x1 + 1 U121_A(x1,x2) = max{x1, x2 + 18} U13_A(x1) = x1 + 1 length_A(x1) = x1 + 67 a__length#_A(x1) = x1 + 18 a__U111#_A(x1,x2,x3) = max{x2 + 18, x3 + 18} a__isNatList_A(x1) = x1 + 22 a__U112#_A(x1,x2,x3) = x2 + 18 a__U113#_A(x1,x2,x3) = x2 + 18 a__U114#_A(x1,x2) = x2 + 18 U114_A(x1,x2) = max{x1 + 51, x2 + 67} U113_A(x1,x2,x3) = max{x1 + 57, x2 + 67} U112_A(x1,x2,x3) = max{x1 + 56, x2 + 67, x3 + 19} U111_A(x1,x2,x3) = max{x1, x2 + 67, x3 + 52} U12_A(x1,x2) = max{x1, x2 + 23} U11_A(x1,x2) = max{x1, x2 + 23} U106_A(x1) = x1 + 1 U105_A(x1,x2) = max{x1, x2 + 25} U104_A(x1,x2,x3) = max{x1, x2 + 21, x3 + 25} U103_A(x1,x2,x3) = max{x1, x2 + 21, x3 + 25} U102_A(x1,x2,x3) = max{x1 + 19, x2 + 21, x3 + 26} U101_A(x1,x2,x3) = max{x1, x2 + 22, x3 + 30} a__zeros_A = 0 |0|_A = 0 zeros_A = 0 a__U101_A(x1,x2,x3) = max{x1, x2 + 22, x3 + 30} a__U102_A(x1,x2,x3) = max{x1 + 19, x2 + 21, x3 + 26} a__U103_A(x1,x2,x3) = max{x1, x2 + 21, x3 + 25} a__U104_A(x1,x2,x3) = max{x1, x2 + 21, x3 + 25} a__U105_A(x1,x2) = max{x1, x2 + 25} a__U106_A(x1) = x1 + 1 a__U11_A(x1,x2) = max{x1, x2 + 23} a__U12_A(x1,x2) = max{x1, x2 + 23} a__U111_A(x1,x2,x3) = max{x1, x2 + 67, x3 + 52} a__U112_A(x1,x2,x3) = max{x1 + 56, x2 + 67, x3 + 19} a__U113_A(x1,x2,x3) = max{x1 + 57, x2 + 67} a__U114_A(x1,x2) = max{x1 + 51, x2 + 67} a__length_A(x1) = x1 + 67 a__U13_A(x1) = x1 + 1 a__U121_A(x1,x2) = max{x1, x2 + 18} a__U122_A(x1) = x1 + 1 nil_A = 0 a__U131_A(x1,x2,x3,x4) = max{38, x1, x2 + 26, x3, x4 + 26} a__U132_A(x1,x2,x3,x4) = max{38, x1, x2 + 26, x3, x4 + 26} a__U133_A(x1,x2,x3,x4) = max{x1 + 38, x2 + 26, x3, x4 + 19} a__U134_A(x1,x2,x3,x4) = max{38, x1, x2 + 26, x3, x4 + 19} a__U135_A(x1,x2,x3,x4) = max{x1 + 38, x2 + 26, x3, x4 + 18} a__U136_A(x1,x2,x3,x4) = max{x1, x2 + 26, x3, x4 + 18} a__U21_A(x1,x2) = max{17, x1 + 1, x2 - 38} a__U22_A(x1,x2) = max{x1 + 3, x2 - 38} a__U23_A(x1) = x1 a__U31_A(x1,x2) = max{24, x1, x2 + 23} a__U32_A(x1,x2) = max{x1, x2 + 23} a__U33_A(x1) = max{2, x1 + 1} a__U41_A(x1,x2,x3) = max{x1 + 9, x2 + 11, x3 + 24} a__U42_A(x1,x2,x3) = max{x1, x2 - 1, x3 + 24} a__U43_A(x1,x2,x3) = max{x1 + 2, x2 - 1, x3 + 24} a__U44_A(x1,x2,x3) = max{x1 + 13, x2 - 1, x3 + 24} a__U45_A(x1,x2) = max{x1 + 18, x2 + 24} a__U46_A(x1) = max{21, x1} a__U51_A(x1,x2) = max{11, x1} a__U52_A(x1) = max{11, x1} a__U61_A(x1,x2) = max{11, x1} a__U62_A(x1) = max{1, x1} a__U71_A(x1) = x1 a__U81_A(x1) = x1 a__U91_A(x1,x2,x3) = max{x1 + 7, x2 + 18, x3 + 22} a__U92_A(x1,x2,x3) = max{x1 + 11, x2 + 9, x3 + 22} a__U93_A(x1,x2,x3) = max{x1 + 11, x2 + 9, x3 + 22} a__U94_A(x1,x2,x3) = max{x1, x2 + 9, x3 + 22} a__U95_A(x1,x2) = max{x1, x2 + 22} a__U96_A(x1) = max{18, x1} a__take_A(x1,x2) = max{x1, x2 + 26} isNatKind_A(x1) = 11 isNatIListKind_A(x1) = 11 isNat_A(x1) = max{0, x1 - 38} isNatIList_A(x1) = x1 + 24 isNatList_A(x1) = x1 + 22 The next rules are strictly ordered: p7, p8, p9, p17, p18, p19, p21, p28, p35, p38, p39, p40, p43, p44, p46, p52, p53, p59, p60, p62, p63, p64, p65, p67, p74 We remove them from the problem. -- SCC decomposition. 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#(U81(X)) -> mark#(X) p8: mark#(U71(X)) -> mark#(X) p9: mark#(U62(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#(U42(X1,X2,X3)) -> mark#(X1) p15: mark#(U33(X)) -> mark#(X) p16: mark#(U32(X1,X2)) -> mark#(X1) p17: mark#(U31(X1,X2)) -> mark#(X1) p18: mark#(U23(X)) -> mark#(X) p19: mark#(U22(X1,X2)) -> mark#(X1) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(take(X1,X2)) -> mark#(X1) p22: mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) p23: a__take#(s(M),cons(N,IL)) -> a__U131#(a__isNatIList(IL),IL,M,N) p24: a__U131#(tt(),IL,M,N) -> a__U132#(a__isNatIListKind(IL),IL,M,N) p25: a__U132#(tt(),IL,M,N) -> a__U133#(a__isNat(M),IL,M,N) p26: a__U133#(tt(),IL,M,N) -> a__U134#(a__isNatKind(M),IL,M,N) p27: a__U135#(tt(),IL,M,N) -> a__U136#(a__isNatKind(N),IL,M,N) p28: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p29: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p30: mark#(U134(X1,X2,X3,X4)) -> a__U134#(mark(X1),X2,X3,X4) p31: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p32: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p33: mark#(U131(X1,X2,X3,X4)) -> a__U131#(mark(X1),X2,X3,X4) p34: mark#(U122(X)) -> mark#(X) p35: mark#(U121(X1,X2)) -> mark#(X1) p36: mark#(U13(X)) -> mark#(X) p37: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p38: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p39: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) p40: a__U113#(tt(),L,N) -> a__U114#(a__isNatKind(N),L) p41: a__U114#(tt(),L) -> mark#(L) p42: a__U114#(tt(),L) -> a__length#(mark(L)) p43: mark#(U111(X1,X2,X3)) -> mark#(X1) p44: mark#(U12(X1,X2)) -> mark#(X1) p45: mark#(U11(X1,X2)) -> mark#(X1) p46: mark#(U106(X)) -> mark#(X) p47: mark#(U105(X1,X2)) -> mark#(X1) p48: mark#(U104(X1,X2,X3)) -> mark#(X1) p49: mark#(U103(X1,X2,X3)) -> mark#(X1) p50: 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: {p37, p38, p39, p40, p42} {p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p28, p29, p31, p32, p34, p35, p36, p43, p44, p45, p46, p47, p48, p49, p50} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U113#(tt(),L,N) -> a__U114#(a__isNatKind(N),L) p2: a__U114#(tt(),L) -> a__length#(mark(L)) p3: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p4: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p5: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) 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: max/plus interpretations on natural numbers: a__U113#_A(x1,x2,x3) = max{233, x1 + 113, x2 + 232} tt_A = 113 a__U114#_A(x1,x2) = max{x1 + 119, x2 + 195} a__isNatKind_A(x1) = 113 a__length#_A(x1) = x1 + 194 mark_A(x1) = max{38, x1} cons_A(x1,x2) = x2 + 38 a__U111#_A(x1,x2,x3) = max{x1 + 121, x2 + 232} a__isNatList_A(x1) = max{53, x1 + 51} a__U112#_A(x1,x2,x3) = max{233, x2 + 232} a__isNatIListKind_A(x1) = 124 a__isNat_A(x1) = 119 a__zeros_A = 38 |0|_A = 88 zeros_A = 0 a__U101_A(x1,x2,x3) = 126 a__U102_A(x1,x2,x3) = max{126, x1 + 1} a__U103_A(x1,x2,x3) = 126 a__U104_A(x1,x2,x3) = max{126, x1 + 1} a__U105_A(x1,x2) = max{115, x1 - 4} a__U106_A(x1) = 115 a__isNatIList_A(x1) = x1 + 113 a__U11_A(x1,x2) = 119 a__U12_A(x1,x2) = 113 a__U111_A(x1,x2,x3) = max{228, x1 + 175, x2 + 227} a__U112_A(x1,x2,x3) = max{229, x1 + 153, x2 + 227} a__U113_A(x1,x2,x3) = max{266, x1 + 112, x2 + 227} a__U114_A(x1,x2) = max{266, x1 + 113, x2 + 227} s_A(x1) = max{227, x1 + 38} a__length_A(x1) = max{228, x1 + 189} a__U13_A(x1) = 113 a__U121_A(x1,x2) = 62 a__U122_A(x1) = 62 nil_A = 62 a__U131_A(x1,x2,x3,x4) = max{120, x3 - 69} a__U132_A(x1,x2,x3,x4) = max{120, x1 - 106, x3 - 69} a__U133_A(x1,x2,x3,x4) = max{40, x1 + 1, x3 - 69} a__U134_A(x1,x2,x3,x4) = max{113, x3 - 69} a__U135_A(x1,x2,x3,x4) = max{113, x3 - 69} a__U136_A(x1,x2,x3,x4) = max{21, x1, x3 - 69} take_A(x1,x2) = max{75, x1 - 107} a__U21_A(x1,x2) = 119 a__U22_A(x1,x2) = max{119, x1 - 75} a__U23_A(x1) = max{39, x1} a__U31_A(x1,x2) = x2 + 113 a__U32_A(x1,x2) = max{x1 - 11, x2 + 103} a__U33_A(x1) = max{103, x1 + 50} a__U41_A(x1,x2,x3) = x3 + 127 a__U42_A(x1,x2,x3) = max{x1 + 14, x3 + 126} a__U43_A(x1,x2,x3) = max{127, x1, x3 + 126} a__U44_A(x1,x2,x3) = max{x1 + 3, x3 + 123} a__U45_A(x1,x2) = x2 + 123 a__U46_A(x1) = 118 a__U51_A(x1,x2) = x1 a__U52_A(x1) = 113 a__U61_A(x1,x2) = max{124, x1} a__U62_A(x1) = max{39, x1} a__U71_A(x1) = max{113, x1 - 11} a__U81_A(x1) = max{39, x1} a__U91_A(x1,x2,x3) = x3 + 89 a__U92_A(x1,x2,x3) = max{x1 - 37, x3 + 89} a__U93_A(x1,x2,x3) = max{77, x1 - 35, x3 + 76} a__U94_A(x1,x2,x3) = max{76, x3 + 75} a__U95_A(x1,x2) = max{68, x1 - 44, x2 + 67} a__U96_A(x1) = max{69, x1 + 16} a__take_A(x1,x2) = max{75, x1 - 107} U101_A(x1,x2,x3) = 126 U102_A(x1,x2,x3) = max{126, x1 + 1} U103_A(x1,x2,x3) = 126 U104_A(x1,x2,x3) = max{126, x1 + 1} U105_A(x1,x2) = max{115, x1 - 4} U106_A(x1) = 115 isNatIList_A(x1) = x1 + 113 U11_A(x1,x2) = 119 U12_A(x1,x2) = 113 U111_A(x1,x2,x3) = max{228, x1 + 175, x2 + 227} U112_A(x1,x2,x3) = max{229, x1 + 153, x2 + 227} U113_A(x1,x2,x3) = max{266, x1 + 112, x2 + 227} U114_A(x1,x2) = max{266, x1 + 113, x2 + 227} length_A(x1) = max{228, x1 + 189} U13_A(x1) = 113 U121_A(x1,x2) = 62 U122_A(x1) = 62 U131_A(x1,x2,x3,x4) = max{120, x3 - 69} U132_A(x1,x2,x3,x4) = max{120, x1 - 106, x3 - 69} U133_A(x1,x2,x3,x4) = max{40, x1 + 1, x3 - 69} U134_A(x1,x2,x3,x4) = max{113, x3 - 69} U135_A(x1,x2,x3,x4) = max{113, x3 - 69} U136_A(x1,x2,x3,x4) = max{20, x1, x3 - 69} U21_A(x1,x2) = 119 U22_A(x1,x2) = max{119, x1 - 75} U23_A(x1) = max{39, x1} U31_A(x1,x2) = x2 + 113 U32_A(x1,x2) = max{x1 - 11, x2 + 103} U33_A(x1) = max{103, x1 + 50} U41_A(x1,x2,x3) = x3 + 127 U42_A(x1,x2,x3) = max{x1 + 14, x3 + 126} U43_A(x1,x2,x3) = max{127, x1, x3 + 126} U44_A(x1,x2,x3) = max{x1 + 3, x3 + 123} U45_A(x1,x2) = x2 + 123 U46_A(x1) = 118 U51_A(x1,x2) = x1 U52_A(x1) = 113 U61_A(x1,x2) = max{124, x1} U62_A(x1) = max{39, x1} U71_A(x1) = max{113, x1 - 11} U81_A(x1) = max{39, x1} U91_A(x1,x2,x3) = x3 + 89 U92_A(x1,x2,x3) = max{x1 - 37, x3 + 89} U93_A(x1,x2,x3) = max{77, x1 - 35, x3 + 76} U94_A(x1,x2,x3) = max{76, x3 + 75} U95_A(x1,x2) = max{68, x1 - 44, x2 + 67} U96_A(x1) = max{69, x1 + 16} isNatKind_A(x1) = 113 isNatIListKind_A(x1) = 124 isNat_A(x1) = 119 isNatList_A(x1) = max{53, x1 + 51} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U114#(tt(),L) -> a__length#(mark(L)) p2: a__length#(cons(N,L)) -> a__U111#(a__isNatList(L),L,N) p3: a__U111#(tt(),L,N) -> a__U112#(a__isNatIListKind(L),L,N) p4: a__U112#(tt(),L,N) -> a__U113#(a__isNat(N),L,N) 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: (no SCCs) -- 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#(U103(X1,X2,X3)) -> mark#(X1) p4: mark#(U104(X1,X2,X3)) -> mark#(X1) p5: mark#(U105(X1,X2)) -> mark#(X1) p6: mark#(U106(X)) -> mark#(X) p7: mark#(U11(X1,X2)) -> mark#(X1) p8: mark#(U12(X1,X2)) -> mark#(X1) p9: mark#(U111(X1,X2,X3)) -> mark#(X1) p10: mark#(U13(X)) -> mark#(X) p11: mark#(U121(X1,X2)) -> mark#(X1) p12: mark#(U122(X)) -> mark#(X) p13: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U132(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p16: mark#(U136(X1,X2,X3,X4)) -> mark#(X1) p17: mark#(take(X1,X2)) -> mark#(X1) p18: mark#(U21(X1,X2)) -> mark#(X1) p19: mark#(U22(X1,X2)) -> mark#(X1) p20: mark#(U23(X)) -> mark#(X) p21: mark#(U31(X1,X2)) -> mark#(X1) p22: mark#(U32(X1,X2)) -> mark#(X1) p23: mark#(U33(X)) -> mark#(X) p24: mark#(U42(X1,X2,X3)) -> mark#(X1) p25: mark#(U46(X)) -> mark#(X) p26: mark#(U51(X1,X2)) -> mark#(X1) p27: mark#(U52(X)) -> mark#(X) p28: mark#(U61(X1,X2)) -> mark#(X1) p29: mark#(U62(X)) -> mark#(X) p30: mark#(U71(X)) -> mark#(X) p31: mark#(U81(X)) -> mark#(X) p32: mark#(U94(X1,X2,X3)) -> mark#(X1) p33: mark#(U95(X1,X2)) -> mark#(X1) p34: mark#(U96(X)) -> mark#(X) p35: 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} s_A(x1) = x1 + 2 U101_A(x1,x2,x3) = max{x1, x3 + 1} U103_A(x1,x2,x3) = max{x1, x2 + 2, x3 + 2} U104_A(x1,x2,x3) = max{x1 + 2, x2 + 2, x3 + 2} U105_A(x1,x2) = max{x1 + 2, x2 + 2} U106_A(x1) = x1 U11_A(x1,x2) = x1 + 1 U12_A(x1,x2) = max{x1, x2 + 1} U111_A(x1,x2,x3) = max{x1, x2 + 2, x3 + 2} U13_A(x1) = x1 + 1 U121_A(x1,x2) = max{x1 + 1, x2 + 1} U122_A(x1) = x1 + 1 U131_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U132_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 2, x3 + 2, x4 + 2} U134_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U136_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 2, x3 + 2, x4 + 2} take_A(x1,x2) = max{x1 + 2, x2 + 2} U21_A(x1,x2) = max{x1, x2 + 1} U22_A(x1,x2) = max{x1, x2 + 1} U23_A(x1) = x1 U31_A(x1,x2) = max{x1, x2 + 1} U32_A(x1,x2) = max{x1, x2 + 1} U33_A(x1) = x1 U42_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U46_A(x1) = x1 U51_A(x1,x2) = max{x1 + 2, x2 + 2} U52_A(x1) = x1 U61_A(x1,x2) = max{x1 + 2, x2 + 2} U62_A(x1) = x1 U71_A(x1) = x1 U81_A(x1) = x1 U94_A(x1,x2,x3) = max{x1 + 2, x2 + 2, x3 + 2} U95_A(x1,x2) = x1 + 1 U96_A(x1) = x1 + 1 cons_A(x1,x2) = x1 + 1 The next rules are strictly ordered: p1, p4, p5, p14, p16, p17, p26, p28, p32 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#(U106(X)) -> mark#(X) p4: mark#(U11(X1,X2)) -> mark#(X1) p5: mark#(U12(X1,X2)) -> mark#(X1) p6: mark#(U111(X1,X2,X3)) -> mark#(X1) p7: mark#(U13(X)) -> mark#(X) p8: mark#(U121(X1,X2)) -> mark#(X1) p9: mark#(U122(X)) -> mark#(X) p10: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U21(X1,X2)) -> mark#(X1) p13: mark#(U22(X1,X2)) -> mark#(X1) p14: mark#(U23(X)) -> mark#(X) p15: mark#(U31(X1,X2)) -> mark#(X1) p16: mark#(U32(X1,X2)) -> mark#(X1) p17: mark#(U33(X)) -> mark#(X) p18: mark#(U42(X1,X2,X3)) -> mark#(X1) p19: mark#(U46(X)) -> mark#(X) p20: mark#(U52(X)) -> mark#(X) p21: mark#(U62(X)) -> mark#(X) p22: mark#(U71(X)) -> mark#(X) p23: mark#(U81(X)) -> mark#(X) p24: mark#(U95(X1,X2)) -> mark#(X1) p25: mark#(U96(X)) -> mark#(X) p26: 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} -- 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#(U96(X)) -> mark#(X) p4: mark#(U95(X1,X2)) -> mark#(X1) p5: mark#(U81(X)) -> mark#(X) p6: mark#(U71(X)) -> mark#(X) p7: mark#(U62(X)) -> mark#(X) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U46(X)) -> mark#(X) p10: mark#(U42(X1,X2,X3)) -> mark#(X1) p11: mark#(U33(X)) -> mark#(X) p12: mark#(U32(X1,X2)) -> mark#(X1) p13: mark#(U31(X1,X2)) -> mark#(X1) p14: mark#(U23(X)) -> mark#(X) p15: mark#(U22(X1,X2)) -> mark#(X1) p16: mark#(U21(X1,X2)) -> mark#(X1) p17: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p18: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p19: mark#(U122(X)) -> mark#(X) p20: mark#(U121(X1,X2)) -> mark#(X1) p21: mark#(U13(X)) -> mark#(X) p22: mark#(U111(X1,X2,X3)) -> mark#(X1) p23: mark#(U12(X1,X2)) -> mark#(X1) p24: mark#(U11(X1,X2)) -> mark#(X1) p25: mark#(U106(X)) -> mark#(X) p26: 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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U101_A(x1,x2,x3) = max{x1 + 1, x2, x3} cons_A(x1,x2) = max{x1, x2} U96_A(x1) = x1 U95_A(x1,x2) = max{x1, x2} U81_A(x1) = x1 U71_A(x1) = x1 U62_A(x1) = x1 U52_A(x1) = x1 U46_A(x1) = x1 U42_A(x1,x2,x3) = max{x1, x2, x3} U33_A(x1) = x1 U32_A(x1,x2) = max{x1, x2} U31_A(x1,x2) = max{x1, x2} U23_A(x1) = x1 U22_A(x1,x2) = max{x1, x2} U21_A(x1,x2) = max{x1, x2} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U122_A(x1) = x1 U121_A(x1,x2) = max{x1, x2} U13_A(x1) = x1 U111_A(x1,x2,x3) = max{x1, x2, x3} U12_A(x1,x2) = max{x1, x2} U11_A(x1,x2) = max{x1, x2} U106_A(x1) = x1 + 1 U103_A(x1,x2,x3) = max{x1, x2, x3} The next rules are strictly ordered: p1, p25 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(cons(X1,X2)) -> mark#(X1) p2: mark#(U96(X)) -> mark#(X) p3: mark#(U95(X1,X2)) -> mark#(X1) p4: mark#(U81(X)) -> mark#(X) p5: mark#(U71(X)) -> mark#(X) p6: mark#(U62(X)) -> mark#(X) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U46(X)) -> mark#(X) p9: mark#(U42(X1,X2,X3)) -> mark#(X1) p10: mark#(U33(X)) -> mark#(X) p11: mark#(U32(X1,X2)) -> mark#(X1) p12: mark#(U31(X1,X2)) -> mark#(X1) p13: mark#(U23(X)) -> mark#(X) p14: mark#(U22(X1,X2)) -> mark#(X1) p15: mark#(U21(X1,X2)) -> mark#(X1) p16: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p17: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p18: mark#(U122(X)) -> mark#(X) p19: mark#(U121(X1,X2)) -> mark#(X1) p20: mark#(U13(X)) -> mark#(X) p21: mark#(U111(X1,X2,X3)) -> mark#(X1) p22: mark#(U12(X1,X2)) -> mark#(X1) p23: mark#(U11(X1,X2)) -> mark#(X1) p24: 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, p23, p24} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(cons(X1,X2)) -> mark#(X1) p2: mark#(U103(X1,X2,X3)) -> mark#(X1) p3: mark#(U11(X1,X2)) -> mark#(X1) p4: mark#(U12(X1,X2)) -> mark#(X1) p5: mark#(U111(X1,X2,X3)) -> mark#(X1) p6: mark#(U13(X)) -> mark#(X) p7: mark#(U121(X1,X2)) -> mark#(X1) p8: mark#(U122(X)) -> mark#(X) p9: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U21(X1,X2)) -> mark#(X1) p12: mark#(U22(X1,X2)) -> mark#(X1) p13: mark#(U23(X)) -> mark#(X) p14: mark#(U31(X1,X2)) -> mark#(X1) p15: mark#(U32(X1,X2)) -> mark#(X1) p16: mark#(U33(X)) -> mark#(X) p17: mark#(U42(X1,X2,X3)) -> mark#(X1) p18: mark#(U46(X)) -> mark#(X) p19: mark#(U52(X)) -> mark#(X) p20: mark#(U62(X)) -> mark#(X) p21: mark#(U71(X)) -> mark#(X) p22: mark#(U81(X)) -> mark#(X) p23: mark#(U95(X1,X2)) -> mark#(X1) p24: mark#(U96(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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 cons_A(x1,x2) = max{x1 + 1, x2} U103_A(x1,x2,x3) = max{x1, x2, x3} U11_A(x1,x2) = max{x1, x2} U12_A(x1,x2) = max{x1, x2} U111_A(x1,x2,x3) = max{x1, x2, x3} U13_A(x1) = x1 U121_A(x1,x2) = max{x1, x2} U122_A(x1) = x1 U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U21_A(x1,x2) = max{x1, x2} U22_A(x1,x2) = max{x1 + 1, x2} U23_A(x1) = x1 U31_A(x1,x2) = max{x1, x2} U32_A(x1,x2) = max{x1, x2} U33_A(x1) = x1 U42_A(x1,x2,x3) = max{x1, x2, x3} U46_A(x1) = x1 U52_A(x1) = x1 U62_A(x1) = x1 U71_A(x1) = x1 U81_A(x1) = x1 U95_A(x1,x2) = max{x1, x2} U96_A(x1) = x1 The next rules are strictly ordered: p1, p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U103(X1,X2,X3)) -> mark#(X1) p2: mark#(U11(X1,X2)) -> mark#(X1) p3: mark#(U12(X1,X2)) -> mark#(X1) p4: mark#(U111(X1,X2,X3)) -> mark#(X1) p5: mark#(U13(X)) -> mark#(X) p6: mark#(U121(X1,X2)) -> mark#(X1) p7: mark#(U122(X)) -> mark#(X) p8: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U21(X1,X2)) -> mark#(X1) p11: mark#(U23(X)) -> mark#(X) p12: mark#(U31(X1,X2)) -> mark#(X1) p13: mark#(U32(X1,X2)) -> mark#(X1) p14: mark#(U33(X)) -> mark#(X) p15: mark#(U42(X1,X2,X3)) -> mark#(X1) p16: mark#(U46(X)) -> mark#(X) p17: mark#(U52(X)) -> mark#(X) p18: mark#(U62(X)) -> mark#(X) p19: mark#(U71(X)) -> mark#(X) p20: mark#(U81(X)) -> mark#(X) p21: mark#(U95(X1,X2)) -> mark#(X1) p22: mark#(U96(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: {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#(U103(X1,X2,X3)) -> mark#(X1) p2: mark#(U96(X)) -> mark#(X) p3: mark#(U95(X1,X2)) -> mark#(X1) p4: mark#(U81(X)) -> mark#(X) p5: mark#(U71(X)) -> mark#(X) p6: mark#(U62(X)) -> mark#(X) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U46(X)) -> mark#(X) p9: mark#(U42(X1,X2,X3)) -> mark#(X1) p10: mark#(U33(X)) -> mark#(X) p11: mark#(U32(X1,X2)) -> mark#(X1) p12: mark#(U31(X1,X2)) -> mark#(X1) p13: mark#(U23(X)) -> mark#(X) p14: mark#(U21(X1,X2)) -> mark#(X1) p15: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p16: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p17: mark#(U122(X)) -> mark#(X) p18: mark#(U121(X1,X2)) -> mark#(X1) p19: mark#(U13(X)) -> mark#(X) p20: mark#(U111(X1,X2,X3)) -> mark#(X1) p21: mark#(U12(X1,X2)) -> mark#(X1) p22: 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U103_A(x1,x2,x3) = max{x1 + 1, x2 + 1, x3 + 1} U96_A(x1) = x1 + 2 U95_A(x1,x2) = max{x1 + 1, x2 + 1} U81_A(x1) = x1 + 1 U71_A(x1) = x1 + 1 U62_A(x1) = max{2, x1} U52_A(x1) = x1 + 1 U46_A(x1) = x1 U42_A(x1,x2,x3) = max{x1 + 1, x2 + 1} U33_A(x1) = x1 + 1 U32_A(x1,x2) = max{x1, x2 + 2} U31_A(x1,x2) = max{x1, x2 + 1} U23_A(x1) = x1 U21_A(x1,x2) = max{x1, x2 + 1} U134_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U131_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U122_A(x1) = x1 U121_A(x1,x2) = max{x1, x2 + 1} U13_A(x1) = x1 U111_A(x1,x2,x3) = max{x1, x2 + 2, x3 + 2} U12_A(x1,x2) = max{x1, x2 + 2} U11_A(x1,x2) = max{x1 + 1, x2 + 1} The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U103(X1,X2,X3)) -> mark#(X1) p2: mark#(U95(X1,X2)) -> mark#(X1) p3: mark#(U81(X)) -> mark#(X) p4: mark#(U71(X)) -> mark#(X) p5: mark#(U62(X)) -> mark#(X) p6: mark#(U52(X)) -> mark#(X) p7: mark#(U46(X)) -> mark#(X) p8: mark#(U42(X1,X2,X3)) -> mark#(X1) p9: mark#(U33(X)) -> mark#(X) p10: mark#(U32(X1,X2)) -> mark#(X1) p11: mark#(U31(X1,X2)) -> mark#(X1) p12: mark#(U23(X)) -> mark#(X) p13: mark#(U21(X1,X2)) -> mark#(X1) p14: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p16: mark#(U122(X)) -> mark#(X) p17: mark#(U121(X1,X2)) -> mark#(X1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(U111(X1,X2,X3)) -> mark#(X1) p20: mark#(U12(X1,X2)) -> mark#(X1) p21: 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, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U103(X1,X2,X3)) -> mark#(X1) p2: mark#(U11(X1,X2)) -> mark#(X1) p3: mark#(U12(X1,X2)) -> mark#(X1) p4: mark#(U111(X1,X2,X3)) -> mark#(X1) p5: mark#(U13(X)) -> mark#(X) p6: mark#(U121(X1,X2)) -> mark#(X1) p7: mark#(U122(X)) -> mark#(X) p8: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U21(X1,X2)) -> mark#(X1) p11: mark#(U23(X)) -> mark#(X) p12: mark#(U31(X1,X2)) -> mark#(X1) p13: mark#(U32(X1,X2)) -> mark#(X1) p14: mark#(U33(X)) -> mark#(X) p15: mark#(U42(X1,X2,X3)) -> mark#(X1) p16: mark#(U46(X)) -> mark#(X) p17: mark#(U52(X)) -> mark#(X) p18: mark#(U62(X)) -> mark#(X) p19: mark#(U71(X)) -> mark#(X) p20: mark#(U81(X)) -> mark#(X) p21: mark#(U95(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U103_A(x1,x2,x3) = max{x1 + 1, x2, x3} U11_A(x1,x2) = max{x1, x2} U12_A(x1,x2) = max{x1, x2} U111_A(x1,x2,x3) = max{x1, x2, x3} U13_A(x1) = x1 + 1 U121_A(x1,x2) = max{x1, x2} U122_A(x1) = x1 U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U21_A(x1,x2) = max{x1, x2} U23_A(x1) = x1 U31_A(x1,x2) = max{x1, x2} U32_A(x1,x2) = max{x1 + 1, x2} U33_A(x1) = x1 U42_A(x1,x2,x3) = max{x1, x2, x3} U46_A(x1) = x1 U52_A(x1) = x1 U62_A(x1) = x1 U71_A(x1) = x1 + 1 U81_A(x1) = x1 U95_A(x1,x2) = max{x1, x2} The next rules are strictly ordered: p1, p5, p13, p19 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#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U121(X1,X2)) -> mark#(X1) p5: mark#(U122(X)) -> mark#(X) p6: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U21(X1,X2)) -> mark#(X1) p9: mark#(U23(X)) -> mark#(X) p10: mark#(U31(X1,X2)) -> mark#(X1) p11: mark#(U33(X)) -> mark#(X) p12: mark#(U42(X1,X2,X3)) -> mark#(X1) p13: mark#(U46(X)) -> mark#(X) p14: mark#(U52(X)) -> mark#(X) p15: mark#(U62(X)) -> mark#(X) p16: mark#(U81(X)) -> mark#(X) p17: mark#(U95(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U95(X1,X2)) -> mark#(X1) p3: mark#(U81(X)) -> mark#(X) p4: mark#(U62(X)) -> mark#(X) p5: mark#(U52(X)) -> mark#(X) p6: mark#(U46(X)) -> mark#(X) p7: mark#(U42(X1,X2,X3)) -> mark#(X1) p8: mark#(U33(X)) -> mark#(X) p9: mark#(U31(X1,X2)) -> mark#(X1) p10: mark#(U23(X)) -> mark#(X) p11: mark#(U21(X1,X2)) -> mark#(X1) p12: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U122(X)) -> mark#(X) p15: mark#(U121(X1,X2)) -> mark#(X1) p16: mark#(U111(X1,X2,X3)) -> mark#(X1) p17: mark#(U12(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U95_A(x1,x2) = max{x1, x2} U81_A(x1) = x1 U62_A(x1) = x1 U52_A(x1) = x1 + 1 U46_A(x1) = x1 U42_A(x1,x2,x3) = max{x1, x2, x3} U33_A(x1) = x1 U31_A(x1,x2) = max{x1, x2} U23_A(x1) = x1 + 1 U21_A(x1,x2) = max{x1, x2} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U122_A(x1) = x1 U121_A(x1,x2) = max{x1, x2} U111_A(x1,x2,x3) = max{x1, x2, x3} U12_A(x1,x2) = max{x1, x2} The next rules are strictly ordered: p5, p10 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#(U95(X1,X2)) -> mark#(X1) p3: mark#(U81(X)) -> mark#(X) p4: mark#(U62(X)) -> mark#(X) p5: mark#(U46(X)) -> mark#(X) p6: mark#(U42(X1,X2,X3)) -> mark#(X1) p7: mark#(U33(X)) -> mark#(X) p8: mark#(U31(X1,X2)) -> mark#(X1) p9: mark#(U21(X1,X2)) -> mark#(X1) p10: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U122(X)) -> mark#(X) p13: mark#(U121(X1,X2)) -> mark#(X1) p14: mark#(U111(X1,X2,X3)) -> mark#(X1) p15: mark#(U12(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U121(X1,X2)) -> mark#(X1) p5: mark#(U122(X)) -> mark#(X) p6: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U21(X1,X2)) -> mark#(X1) p9: mark#(U31(X1,X2)) -> mark#(X1) p10: mark#(U33(X)) -> mark#(X) p11: mark#(U42(X1,X2,X3)) -> mark#(X1) p12: mark#(U46(X)) -> mark#(X) p13: mark#(U62(X)) -> mark#(X) p14: mark#(U81(X)) -> mark#(X) p15: mark#(U95(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U12_A(x1,x2) = max{x1, x2} U111_A(x1,x2,x3) = max{x1, x2, x3} U121_A(x1,x2) = max{x1, x2} U122_A(x1) = x1 U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U21_A(x1,x2) = max{x1, x2} U31_A(x1,x2) = max{x1, x2} U33_A(x1) = x1 U42_A(x1,x2,x3) = max{x1, x2, x3} U46_A(x1) = x1 U62_A(x1) = x1 U81_A(x1) = x1 U95_A(x1,x2) = max{x1 + 1, x2} The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U121(X1,X2)) -> mark#(X1) p5: mark#(U122(X)) -> mark#(X) p6: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U21(X1,X2)) -> mark#(X1) p9: mark#(U31(X1,X2)) -> mark#(X1) p10: mark#(U33(X)) -> mark#(X) p11: mark#(U42(X1,X2,X3)) -> mark#(X1) p12: mark#(U46(X)) -> mark#(X) p13: mark#(U62(X)) -> mark#(X) p14: mark#(U81(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U62(X)) -> mark#(X) p4: mark#(U46(X)) -> mark#(X) p5: mark#(U42(X1,X2,X3)) -> mark#(X1) p6: mark#(U33(X)) -> mark#(X) p7: mark#(U31(X1,X2)) -> mark#(X1) p8: mark#(U21(X1,X2)) -> mark#(X1) p9: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U122(X)) -> mark#(X) p12: mark#(U121(X1,X2)) -> mark#(X1) p13: mark#(U111(X1,X2,X3)) -> mark#(X1) p14: mark#(U12(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1} U11_A(x1,x2) = max{x1, x2 + 2} U81_A(x1) = x1 + 1 U62_A(x1) = x1 + 1 U46_A(x1) = x1 + 1 U42_A(x1,x2,x3) = max{x1 + 2, x2 + 2, x3 + 2} U33_A(x1) = x1 U31_A(x1,x2) = max{x1, x2 + 2} U21_A(x1,x2) = max{x1, x2 + 1} U134_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U131_A(x1,x2,x3,x4) = max{x1, x3 + 1} U122_A(x1) = x1 U121_A(x1,x2) = max{x1 + 2, x2 + 2} U111_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U12_A(x1,x2) = max{x1, x2 + 2} The next rules are strictly ordered: p5, p12 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#(U81(X)) -> mark#(X) p3: mark#(U62(X)) -> mark#(X) p4: mark#(U46(X)) -> mark#(X) p5: mark#(U33(X)) -> mark#(X) p6: mark#(U31(X1,X2)) -> mark#(X1) p7: mark#(U21(X1,X2)) -> mark#(X1) p8: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U122(X)) -> mark#(X) p11: mark#(U111(X1,X2,X3)) -> mark#(X1) p12: mark#(U12(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U21(X1,X2)) -> mark#(X1) p8: mark#(U31(X1,X2)) -> mark#(X1) p9: mark#(U33(X)) -> mark#(X) p10: mark#(U46(X)) -> mark#(X) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U81(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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U11_A(x1,x2) = max{x1, x2 + 2} U12_A(x1,x2) = x1 U111_A(x1,x2,x3) = max{x1 + 1, x2 + 1} U122_A(x1) = x1 U131_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U134_A(x1,x2,x3,x4) = max{x1, x3 + 1} U21_A(x1,x2) = max{x1 + 2, x2 + 2} U31_A(x1,x2) = max{x1, x2 + 1} U33_A(x1) = x1 U46_A(x1) = x1 + 1 U62_A(x1) = x1 + 1 U81_A(x1) = x1 + 1 The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U31(X1,X2)) -> mark#(X1) p8: mark#(U33(X)) -> mark#(X) p9: mark#(U46(X)) -> mark#(X) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U81(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U62(X)) -> mark#(X) p4: mark#(U46(X)) -> mark#(X) p5: mark#(U33(X)) -> mark#(X) p6: mark#(U31(X1,X2)) -> mark#(X1) p7: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U122(X)) -> mark#(X) p10: mark#(U111(X1,X2,X3)) -> mark#(X1) p11: mark#(U12(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U81_A(x1) = x1 U62_A(x1) = x1 U46_A(x1) = x1 + 1 U33_A(x1) = x1 U31_A(x1,x2) = max{x1, x2} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U122_A(x1) = x1 U111_A(x1,x2,x3) = max{x1, x2, x3} U12_A(x1,x2) = max{x1, x2} The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U62(X)) -> mark#(X) p4: mark#(U33(X)) -> mark#(X) p5: mark#(U31(X1,X2)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U122(X)) -> mark#(X) p9: mark#(U111(X1,X2,X3)) -> mark#(X1) p10: mark#(U12(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U31(X1,X2)) -> mark#(X1) p8: mark#(U33(X)) -> mark#(X) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U81(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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U11_A(x1,x2) = max{x1 + 1, x2 + 1} U12_A(x1,x2) = x1 + 1 U111_A(x1,x2,x3) = max{x1, x2 + 2, x3 + 2} U122_A(x1) = x1 + 1 U131_A(x1,x2,x3,x4) = max{x1, x2 + 2, x3 + 2, x4 + 2} U134_A(x1,x2,x3,x4) = max{x1, x3 + 1} U31_A(x1,x2) = max{x1 + 2, x2 + 2} U33_A(x1) = x1 U62_A(x1) = x1 + 1 U81_A(x1) = x1 + 1 The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U33(X)) -> mark#(X) p8: mark#(U62(X)) -> mark#(X) p9: mark#(U81(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: {p1, p2, p3, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U62(X)) -> mark#(X) p4: mark#(U33(X)) -> mark#(X) p5: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U122(X)) -> mark#(X) p8: mark#(U111(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U81_A(x1) = x1 U62_A(x1) = x1 U33_A(x1) = x1 + 1 U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U122_A(x1) = x1 U111_A(x1,x2,x3) = max{x1, x2, x3} U12_A(x1,x2) = max{x1, x2} The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U62(X)) -> mark#(X) p4: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U122(X)) -> mark#(X) p7: mark#(U111(X1,X2,X3)) -> mark#(X1) p8: mark#(U12(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#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U62(X)) -> mark#(X) p8: mark#(U81(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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1} U11_A(x1,x2) = max{x1 + 1, x2 + 1} U12_A(x1,x2) = max{x1, x2 + 2} U111_A(x1,x2,x3) = max{x1, x2 + 1} U122_A(x1) = x1 + 1 U131_A(x1,x2,x3,x4) = max{x1, x2 + 1} U134_A(x1,x2,x3,x4) = max{x1, x3 + 1} U62_A(x1) = x1 + 2 U81_A(x1) = x1 + 1 The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U111(X1,X2,X3)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U81(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: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U122(X)) -> mark#(X) p6: mark#(U111(X1,X2,X3)) -> mark#(X1) p7: mark#(U12(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U81_A(x1) = x1 U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U131_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U122_A(x1) = x1 U111_A(x1,x2,x3) = max{x1, x2, x3} U12_A(x1,x2) = max{x1 + 1, x2} The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U81(X)) -> mark#(X) p3: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U122(X)) -> mark#(X) p6: mark#(U111(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U111(X1,X2,X3)) -> mark#(X1) p3: mark#(U122(X)) -> mark#(X) p4: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U81(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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = x1 U11_A(x1,x2) = max{x1, x2 + 1} U111_A(x1,x2,x3) = max{x1, x2 + 1, x3 + 1} U122_A(x1) = max{1, x1} U131_A(x1,x2,x3,x4) = max{x1, x2} U134_A(x1,x2,x3,x4) = max{x1, x3, x4} U81_A(x1) = x1 + 1 The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U111(X1,X2,X3)) -> mark#(X1) p3: mark#(U122(X)) -> mark#(X) p4: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U134(X1,X2,X3,X4)) -> 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U134(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U131(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U122(X)) -> mark#(X) p5: mark#(U111(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} U131_A(x1,x2,x3,x4) = max{x1 + 1, x2, x3, x4} U122_A(x1) = x1 U111_A(x1,x2,x3) = max{x1, x2, x3} 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#(U134(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U122(X)) -> mark#(X) p4: mark#(U111(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U111(X1,X2,X3)) -> mark#(X1) p3: mark#(U122(X)) -> mark#(X) p4: mark#(U134(X1,X2,X3,X4)) -> 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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 U11_A(x1,x2) = max{x1, x2} U111_A(x1,x2,x3) = max{x1, x2, x3} U122_A(x1) = x1 + 1 U134_A(x1,x2,x3,x4) = max{x1, x2, x3, x4} 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#(U111(X1,X2,X3)) -> mark#(X1) p3: mark#(U134(X1,X2,X3,X4)) -> 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#(U134(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U111(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U11_A(x1,x2) = max{x1 + 1, x2 + 1} U134_A(x1,x2,x3,x4) = max{x1, x2 + 1, x4 + 1} U111_A(x1,x2,x3) = max{x1 + 2, x2 + 2, x3 + 2} The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U134(X1,X2,X3,X4)) -> 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2)) -> mark#(X1) p2: mark#(U134(X1,X2,X3,X4)) -> 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U11_A(x1,x2) = x1 + 1 U134_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 2, x3 + 2, x4 + 2} The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 U11_A(x1,x2) = max{x1 + 1, x2 + 1} The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: a__U101#_A(x1,x2,x3) = max{200, x2 + 148, x3 + 148} tt_A = 28 a__U102#_A(x1,x2,x3) = max{x1 + 113, x2 + 148, x3 + 148} a__isNatKind_A(x1) = max{34, x1 + 27} a__U103#_A(x1,x2,x3) = max{x1 + 92, x2 + 120, x3 + 120} a__isNatIListKind_A(x1) = max{48, x1 + 27} a__U104#_A(x1,x2,x3) = max{x1 + 71, x2 + 27, x3 + 120} a__isNat#_A(x1) = max{93, x1 + 27} s_A(x1) = x1 + 80 a__U21#_A(x1,x2) = max{x1 + 72, x2 + 107} a__U22#_A(x1,x2) = max{x1 + 65, x2 + 27} length_A(x1) = x1 + 49 a__U11#_A(x1,x2) = x2 + 76 a__U12#_A(x1,x2) = max{x1 + 27, x2 + 76} a__isNatList#_A(x1) = x1 + 76 take_A(x1,x2) = max{x1 + 73, x2 + 147} cons_A(x1,x2) = max{x1 + 57, x2 + 66} a__U91#_A(x1,x2,x3) = max{x1 + 102, x2 + 133, x3 + 141} a__U92#_A(x1,x2,x3) = max{x1 + 106, x2 + 133, x3 + 141} a__U93#_A(x1,x2,x3) = max{x1 + 84, x2 + 112, x3 + 112} a__U94#_A(x1,x2,x3) = max{x1 + 64, x2 + 93, x3 + 93} a__U95#_A(x1,x2) = max{x1 + 40, x2 + 76} a__isNat_A(x1) = max{51, x1 + 27} a__U105#_A(x1,x2) = max{x1 - 25, x2 + 120} a__isNatIList#_A(x1) = x1 + 120 a__U41#_A(x1,x2,x3) = max{x1 + 142, x2 + 177, x3 + 184} a__U42#_A(x1,x2,x3) = max{x1 + 150, x2 + 176, x3 + 184} a__U43#_A(x1,x2,x3) = max{x1 + 127, x2 + 155, x3 + 184} a__U44#_A(x1,x2,x3) = max{x1 + 106, x2 + 134, x3 + 134} a__U45#_A(x1,x2) = max{x1 + 82, x2 + 134} a__U31#_A(x1,x2) = max{98, x2 + 77} a__U32#_A(x1,x2) = max{x1 + 50, x2 + 76} a__U46_A(x1) = 78 U46_A(x1) = 73 a__U45_A(x1,x2) = 78 a__isNatIList_A(x1) = max{28, x1 + 27} U45_A(x1,x2) = 78 a__U44_A(x1,x2,x3) = 78 U44_A(x1,x2,x3) = 78 a__U33_A(x1) = 28 a__U43_A(x1,x2,x3) = 78 U33_A(x1) = 0 U43_A(x1,x2,x3) = 78 a__U32_A(x1,x2) = 28 a__isNatList_A(x1) = max{30, x1 + 27} a__U42_A(x1,x2,x3) = 78 U32_A(x1,x2) = 0 U42_A(x1,x2,x3) = 78 a__U31_A(x1,x2) = max{28, x1 - 21} a__U41_A(x1,x2,x3) = max{77, x1 + 50} U31_A(x1,x2) = max{0, x1 - 21} U41_A(x1,x2,x3) = max{77, x1 + 50} a__U106_A(x1) = 134 a__U96_A(x1) = 78 zeros_A = 0 U106_A(x1) = 134 isNatIList_A(x1) = max{28, x1 + 27} U96_A(x1) = 73 a__U105_A(x1,x2) = 134 a__U95_A(x1,x2) = 78 U105_A(x1,x2) = 134 U95_A(x1,x2) = 78 a__U104_A(x1,x2,x3) = x1 + 106 a__U94_A(x1,x2,x3) = 78 U104_A(x1,x2,x3) = x1 + 106 U94_A(x1,x2,x3) = 78 a__U103_A(x1,x2,x3) = max{x1 + 126, x3 + 154} a__U93_A(x1,x2,x3) = 78 U103_A(x1,x2,x3) = max{x1 + 126, x3 + 154} U93_A(x1,x2,x3) = 78 a__U102_A(x1,x2,x3) = x3 + 174 a__U92_A(x1,x2,x3) = 78 U102_A(x1,x2,x3) = x3 + 174 U92_A(x1,x2,x3) = 78 a__U101_A(x1,x2,x3) = max{x1 + 66, x3 + 174} a__U91_A(x1,x2,x3) = max{86, x1 + 50} U101_A(x1,x2,x3) = max{x1 + 66, x3 + 174} U91_A(x1,x2,x3) = max{86, x1 + 50} a__U13_A(x1) = 53 a__U23_A(x1) = 84 nil_A = 0 U13_A(x1) = 53 isNatList_A(x1) = max{28, x1 + 27} U23_A(x1) = 84 a__U12_A(x1,x2) = 53 a__U22_A(x1,x2) = 84 a__U52_A(x1) = 69 a__U62_A(x1) = 150 U12_A(x1,x2) = 52 U22_A(x1,x2) = 84 U52_A(x1) = 69 U62_A(x1) = 150 a__U11_A(x1,x2) = max{52, x1 + 25} a__U21_A(x1,x2) = max{57, x1 + 56} a__U51_A(x1,x2) = x1 + 50 a__U61_A(x1,x2) = max{150, x1 + 66} a__U71_A(x1) = max{35, x1 - 1} a__U81_A(x1) = max{35, x1 + 1} U11_A(x1,x2) = max{26, x1 + 25} U21_A(x1,x2) = max{57, x1 + 56} U51_A(x1,x2) = x1 + 50 U61_A(x1,x2) = max{67, x1 + 66} U71_A(x1) = max{35, x1 - 1} U81_A(x1) = max{2, x1 + 1} |0|_A = 0 isNatKind_A(x1) = max{28, x1 + 27} isNatIListKind_A(x1) = max{48, x1 + 27} isNat_A(x1) = max{51, x1 + 27} The next rules are strictly ordered: p2, p6, p11, p14, p17, p24, p25, p27, p28 We remove them from the problem. -- 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__U103#(tt(),V1,V2) -> a__U104#(a__isNatIListKind(V2),V1,V2) p3: a__U104#(tt(),V1,V2) -> a__isNat#(V1) p4: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p5: a__U22#(tt(),V1) -> a__isNat#(V1) p6: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p7: a__U11#(tt(),V1) -> a__U12#(a__isNatIListKind(V1),V1) p8: a__U12#(tt(),V1) -> a__isNatList#(V1) p9: a__isNatList#(cons(V1,V2)) -> a__U91#(a__isNatKind(V1),V1,V2) p10: a__U91#(tt(),V1,V2) -> a__U92#(a__isNatKind(V1),V1,V2) p11: a__U93#(tt(),V1,V2) -> a__U94#(a__isNatIListKind(V2),V1,V2) p12: a__U94#(tt(),V1,V2) -> a__isNat#(V1) p13: a__U95#(tt(),V2) -> a__isNatList#(V2) p14: a__U104#(tt(),V1,V2) -> a__U105#(a__isNat(V1),V2) p15: a__U105#(tt(),V2) -> a__isNatIList#(V2) p16: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNatKind(V1),V1,V2) p17: a__U41#(tt(),V1,V2) -> a__U42#(a__isNatKind(V1),V1,V2) p18: a__U42#(tt(),V1,V2) -> a__U43#(a__isNatIListKind(V2),V1,V2) p19: a__U44#(tt(),V1,V2) -> a__U45#(a__isNat(V1),V2) p20: a__U31#(tt(),V) -> a__U32#(a__isNatIListKind(V),V) p21: 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 estimated dependency graph contains the following SCCs: (no SCCs) -- 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: max/plus interpretations on natural numbers: a__isNatIListKind#_A(x1) = max{10, x1} take_A(x1,x2) = max{x1 + 8, x2 + 10} a__isNatKind#_A(x1) = x1 + 8 s_A(x1) = x1 + 2 length_A(x1) = x1 + 2 a__U61#_A(x1,x2) = max{x1 + 1, x2 + 10} a__isNatKind_A(x1) = max{6, x1 + 5} tt_A = 6 cons_A(x1,x2) = max{x1 + 11, x2 + 11} a__U51#_A(x1,x2) = max{x1 + 5, x2 + 11} a__U52_A(x1) = 14 a__U62_A(x1) = 13 U52_A(x1) = 14 U62_A(x1) = 13 a__U51_A(x1,x2) = x1 + 10 a__isNatIListKind_A(x1) = max{8, x1 + 5} a__U61_A(x1,x2) = max{12, x1 + 7} U51_A(x1,x2) = x1 + 10 U61_A(x1,x2) = max{12, x1 + 7} a__U71_A(x1) = max{7, x1 - 1} a__U81_A(x1) = max{7, x1 + 1} nil_A = 0 zeros_A = 0 isNatIListKind_A(x1) = max{6, x1 + 5} U71_A(x1) = max{7, x1 - 1} U81_A(x1) = max{7, x1 + 1} |0|_A = 0 isNatKind_A(x1) = max{6, x1 + 5} The next rules are strictly ordered: p2, p6, p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIListKind#(take(V1,V2)) -> a__isNatKind#(V1) p2: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p3: a__isNatIListKind#(take(V1,V2)) -> a__U61#(a__isNatKind(V1),V2) p4: a__U61#(tt(),V2) -> a__isNatIListKind#(V2) p5: a__isNatIListKind#(cons(V1,V2)) -> a__U51#(a__isNatKind(V1),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 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: a__isNatIListKind#(take(V1,V2)) -> a__isNatKind#(V1) p2: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p3: a__isNatIListKind#(take(V1,V2)) -> a__U61#(a__isNatKind(V1),V2) p4: a__U61#(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: max/plus interpretations on natural numbers: a__isNatIListKind#_A(x1) = x1 + 1 take_A(x1,x2) = max{x1 + 5, x2 + 5} a__isNatKind#_A(x1) = max{1, x1 - 5} length_A(x1) = x1 + 6 a__U61#_A(x1,x2) = max{x1 - 3, x2 + 1} a__isNatKind_A(x1) = max{4, x1 - 1} tt_A = 4 a__U52_A(x1) = 12 a__U62_A(x1) = 8 U52_A(x1) = 12 U62_A(x1) = 8 a__U51_A(x1,x2) = x1 + 8 a__isNatIListKind_A(x1) = max{6, x1 + 3} a__U61_A(x1,x2) = max{8, x1 + 3} U51_A(x1,x2) = x1 + 8 U61_A(x1,x2) = max{8, x1 + 3} a__U71_A(x1) = max{5, x1 - 1} a__U81_A(x1) = max{5, x1 + 4} nil_A = 0 zeros_A = 0 cons_A(x1,x2) = max{x1 + 9, x2 + 9} isNatIListKind_A(x1) = max{4, x1 + 3} U71_A(x1) = max{0, x1 - 1} U81_A(x1) = max{5, x1 + 4} |0|_A = 0 s_A(x1) = x1 + 9 isNatKind_A(x1) = max{0, x1 - 1} The next rules are strictly ordered: p1, p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p2: a__U61#(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 estimated dependency graph contains the following SCCs: (no SCCs)