YES We show the termination of the TRS R: a__zeros() -> cons(|0|(),zeros()) a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) a__U12(tt()) -> tt() a__U21(tt(),V1) -> a__U22(a__isNat(V1)) a__U22(tt()) -> tt() a__U31(tt(),V) -> a__U32(a__isNatList(V)) a__U32(tt()) -> tt() a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) a__U43(tt()) -> tt() a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) a__U53(tt()) -> tt() a__U61(tt(),L) -> s(a__length(mark(L))) a__and(tt(),X) -> mark(X) 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__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) a__isNatIListKind(nil()) -> tt() a__isNatIListKind(zeros()) -> tt() a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) a__isNatKind(|0|()) -> tt() a__isNatKind(length(V1)) -> a__isNatIListKind(V1) a__isNatKind(s(V1)) -> a__isNatKind(V1) a__isNatList(nil()) -> tt() a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) a__length(nil()) -> |0|() a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) mark(zeros()) -> a__zeros() mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X)) -> a__U12(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U21(X1,X2)) -> a__U21(mark(X1),X2) mark(U22(X)) -> a__U22(mark(X)) mark(isNat(X)) -> a__isNat(X) mark(U31(X1,X2)) -> a__U31(mark(X1),X2) mark(U32(X)) -> a__U32(mark(X)) mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) mark(U42(X1,X2)) -> a__U42(mark(X1),X2) mark(U43(X)) -> a__U43(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) mark(U52(X1,X2)) -> a__U52(mark(X1),X2) mark(U53(X)) -> a__U53(mark(X)) mark(U61(X1,X2)) -> a__U61(mark(X1),X2) mark(length(X)) -> a__length(mark(X)) mark(and(X1,X2)) -> a__and(mark(X1),X2) mark(isNatIListKind(X)) -> a__isNatIListKind(X) mark(isNatKind(X)) -> a__isNatKind(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__U11(X1,X2) -> U11(X1,X2) a__U12(X) -> U12(X) a__isNatList(X) -> isNatList(X) a__U21(X1,X2) -> U21(X1,X2) a__U22(X) -> U22(X) a__isNat(X) -> isNat(X) a__U31(X1,X2) -> U31(X1,X2) a__U32(X) -> U32(X) a__U41(X1,X2,X3) -> U41(X1,X2,X3) a__U42(X1,X2) -> U42(X1,X2) a__U43(X) -> U43(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1,X2,X3) -> U51(X1,X2,X3) a__U52(X1,X2) -> U52(X1,X2) a__U53(X) -> U53(X) a__U61(X1,X2) -> U61(X1,X2) a__length(X) -> length(X) a__and(X1,X2) -> and(X1,X2) a__isNatIListKind(X) -> isNatIListKind(X) a__isNatKind(X) -> isNatKind(X) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1) -> a__U12#(a__isNatList(V1)) p2: a__U11#(tt(),V1) -> a__isNatList#(V1) p3: a__U21#(tt(),V1) -> a__U22#(a__isNat(V1)) p4: a__U21#(tt(),V1) -> a__isNat#(V1) p5: a__U31#(tt(),V) -> a__U32#(a__isNatList(V)) p6: a__U31#(tt(),V) -> a__isNatList#(V) p7: a__U41#(tt(),V1,V2) -> a__U42#(a__isNat(V1),V2) p8: a__U41#(tt(),V1,V2) -> a__isNat#(V1) p9: a__U42#(tt(),V2) -> a__U43#(a__isNatIList(V2)) p10: a__U42#(tt(),V2) -> a__isNatIList#(V2) p11: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2) p12: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p13: a__U52#(tt(),V2) -> a__U53#(a__isNatList(V2)) p14: a__U52#(tt(),V2) -> a__isNatList#(V2) p15: a__U61#(tt(),L) -> a__length#(mark(L)) p16: a__U61#(tt(),L) -> mark#(L) p17: a__and#(tt(),X) -> mark#(X) p18: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p19: a__isNat#(length(V1)) -> a__isNatIListKind#(V1) p20: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p21: a__isNat#(s(V1)) -> a__isNatKind#(V1) p22: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V) p23: a__isNatIList#(V) -> a__isNatIListKind#(V) p24: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p25: a__isNatIList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p26: a__isNatIList#(cons(V1,V2)) -> a__isNatKind#(V1) p27: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p28: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p29: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p30: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p31: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p32: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p33: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1) p34: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) p35: a__length#(cons(N,L)) -> a__and#(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))) p36: a__length#(cons(N,L)) -> a__and#(a__isNatList(L),isNatIListKind(L)) p37: a__length#(cons(N,L)) -> a__isNatList#(L) p38: mark#(zeros()) -> a__zeros#() p39: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2) p40: mark#(U11(X1,X2)) -> mark#(X1) p41: mark#(U12(X)) -> a__U12#(mark(X)) p42: mark#(U12(X)) -> mark#(X) p43: mark#(isNatList(X)) -> a__isNatList#(X) p44: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p45: mark#(U21(X1,X2)) -> mark#(X1) p46: mark#(U22(X)) -> a__U22#(mark(X)) p47: mark#(U22(X)) -> mark#(X) p48: mark#(isNat(X)) -> a__isNat#(X) p49: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p50: mark#(U31(X1,X2)) -> mark#(X1) p51: mark#(U32(X)) -> a__U32#(mark(X)) p52: mark#(U32(X)) -> mark#(X) p53: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p54: mark#(U41(X1,X2,X3)) -> mark#(X1) p55: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2) p56: mark#(U42(X1,X2)) -> mark#(X1) p57: mark#(U43(X)) -> a__U43#(mark(X)) p58: mark#(U43(X)) -> mark#(X) p59: mark#(isNatIList(X)) -> a__isNatIList#(X) p60: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3) p61: mark#(U51(X1,X2,X3)) -> mark#(X1) p62: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2) p63: mark#(U52(X1,X2)) -> mark#(X1) p64: mark#(U53(X)) -> a__U53#(mark(X)) p65: mark#(U53(X)) -> mark#(X) p66: mark#(U61(X1,X2)) -> a__U61#(mark(X1),X2) p67: mark#(U61(X1,X2)) -> mark#(X1) p68: mark#(length(X)) -> a__length#(mark(X)) p69: mark#(length(X)) -> mark#(X) p70: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p71: mark#(and(X1,X2)) -> mark#(X1) p72: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p73: mark#(isNatKind(X)) -> a__isNatKind#(X) p74: mark#(cons(X1,X2)) -> mark#(X1) p75: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p2, p4, p6, p7, p8, p10, p11, p12, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p39, p40, p42, p43, p44, p45, p47, p48, p49, p50, p52, p53, p54, p55, p56, p58, p59, p60, p61, p62, p63, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1) -> a__isNatList#(V1) p2: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1) p3: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p5: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(cons(X1,X2)) -> mark#(X1) p10: mark#(isNatKind(X)) -> a__isNatKind#(X) p11: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p12: mark#(and(X1,X2)) -> mark#(X1) p13: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p14: mark#(length(X)) -> mark#(X) p15: mark#(length(X)) -> a__length#(mark(X)) p16: a__length#(cons(N,L)) -> a__isNatList#(L) p17: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p18: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p19: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p20: a__isNat#(s(V1)) -> a__isNatKind#(V1) p21: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p22: a__U21#(tt(),V1) -> a__isNat#(V1) p23: a__isNat#(length(V1)) -> a__isNatIListKind#(V1) p24: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p25: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2) p26: a__U52#(tt(),V2) -> a__isNatList#(V2) p27: a__length#(cons(N,L)) -> a__and#(a__isNatList(L),isNatIListKind(L)) p28: a__length#(cons(N,L)) -> a__and#(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))) p29: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) p30: a__U61#(tt(),L) -> mark#(L) p31: mark#(U61(X1,X2)) -> mark#(X1) p32: mark#(U61(X1,X2)) -> a__U61#(mark(X1),X2) p33: a__U61#(tt(),L) -> a__length#(mark(L)) p34: mark#(U53(X)) -> mark#(X) p35: mark#(U52(X1,X2)) -> mark#(X1) p36: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2) p37: mark#(U51(X1,X2,X3)) -> mark#(X1) p38: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3) p39: mark#(isNatIList(X)) -> a__isNatIList#(X) p40: a__isNatIList#(cons(V1,V2)) -> a__isNatKind#(V1) p41: a__isNatIList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p42: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p43: a__U41#(tt(),V1,V2) -> a__isNat#(V1) p44: a__U41#(tt(),V1,V2) -> a__U42#(a__isNat(V1),V2) p45: a__U42#(tt(),V2) -> a__isNatIList#(V2) p46: a__isNatIList#(V) -> a__isNatIListKind#(V) p47: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V) p48: a__U31#(tt(),V) -> a__isNatList#(V) p49: mark#(U43(X)) -> mark#(X) p50: mark#(U42(X1,X2)) -> mark#(X1) p51: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2) p52: mark#(U41(X1,X2,X3)) -> mark#(X1) p53: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p54: mark#(U32(X)) -> mark#(X) p55: mark#(U31(X1,X2)) -> mark#(X1) p56: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p57: mark#(isNat(X)) -> a__isNat#(X) p58: mark#(U22(X)) -> mark#(X) p59: mark#(U21(X1,X2)) -> mark#(X1) p60: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p61: mark#(isNatList(X)) -> a__isNatList#(X) p62: mark#(U12(X)) -> mark#(X) p63: mark#(U11(X1,X2)) -> mark#(X1) p64: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = ((0,1),(0,0)) x1 + (0,1) tt_A() = (6,4) a__isNatList#_A(x1) = (4,1) cons_A(x1,x2) = x1 + ((0,0),(1,1)) x2 + (8,4) a__isNatKind#_A(x1) = (4,1) s_A(x1) = ((0,1),(0,1)) x1 length_A(x1) = ((0,1),(0,1)) x1 + (2,3) a__isNatIListKind#_A(x1) = (4,1) a__and#_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,1)) x2 + (0,1) a__isNatKind_A(x1) = ((0,1),(0,0)) x1 + (7,4) isNatIListKind_A(x1) = ((0,1),(0,0)) x1 + (1,0) mark#_A(x1) = ((0,1),(0,1)) x1 + (4,1) isNatKind_A(x1) = ((0,1),(0,0)) x1 + (1,0) and_A(x1,x2) = x1 + x2 + (4,0) mark_A(x1) = x1 + (9,4) a__length#_A(x1) = ((0,1),(0,1)) x1 + (1,0) a__U51#_A(x1,x2,x3) = (4,1) a__and_A(x1,x2) = x1 + x2 + (4,0) a__isNat#_A(x1) = (4,1) a__U21#_A(x1,x2) = ((0,1),(0,0)) x1 + (0,1) a__isNatIListKind_A(x1) = ((0,1),(0,0)) x1 + (9,4) a__U52#_A(x1,x2) = (4,1) a__isNat_A(x1) = (9,4) a__isNatList_A(x1) = ((0,1),(0,0)) x1 + (12,4) isNat_A(x1) = (1,0) a__U61#_A(x1,x2) = ((1,1),(1,1)) x2 + (5,4) U61_A(x1,x2) = x1 + ((0,1),(1,1)) x2 + (1,3) U53_A(x1) = ((0,1),(0,1)) x1 + (1,0) U52_A(x1,x2) = x1 + x2 + (1,0) U51_A(x1,x2,x3) = x1 + x3 + (4,0) isNatIList_A(x1) = ((1,1),(0,1)) x1 + (6,1) a__isNatIList#_A(x1) = x1 + (4,1) a__U41#_A(x1,x2,x3) = x3 + (4,1) a__U42#_A(x1,x2) = x2 + (4,1) a__U31#_A(x1,x2) = (4,1) U43_A(x1) = ((0,1),(0,1)) x1 + (0,1) U42_A(x1,x2) = x1 + ((0,1),(1,1)) x2 + (7,2) U41_A(x1,x2,x3) = ((0,1),(0,1)) x1 + ((0,1),(0,0)) x2 + ((0,1),(1,1)) x3 + (0,2) U32_A(x1) = x1 + (1,1) U31_A(x1,x2) = x1 + x2 + (4,1) U22_A(x1) = x1 + (1,0) U21_A(x1,x2) = x1 isNatList_A(x1) = ((0,1),(0,0)) x1 + (11,4) U12_A(x1) = x1 + (6,0) U11_A(x1,x2) = x1 a__zeros_A() = (8,5) |0|_A() = (1,0) zeros_A() = (0,1) a__U11_A(x1,x2) = x1 + (9,0) a__U12_A(x1) = x1 + (6,0) a__U21_A(x1,x2) = x1 + (8,0) a__U22_A(x1) = x1 + (7,0) a__U31_A(x1,x2) = x1 + x2 + (4,1) a__U32_A(x1) = x1 + (10,1) a__U41_A(x1,x2,x3) = ((0,1),(0,1)) x1 + ((0,1),(0,0)) x2 + ((0,1),(1,1)) x3 + (5,2) a__U42_A(x1,x2) = x1 + ((0,1),(1,1)) x2 + (7,2) a__U43_A(x1) = ((0,1),(0,1)) x1 + (2,1) a__isNatIList_A(x1) = ((1,1),(0,1)) x1 + (14,5) a__U51_A(x1,x2,x3) = x1 + x3 + (4,0) a__U52_A(x1,x2) = x1 + x2 + (1,0) a__U53_A(x1) = ((0,1),(0,1)) x1 + (2,0) a__U61_A(x1,x2) = x1 + ((0,1),(1,1)) x2 + (7,3) a__length_A(x1) = ((0,1),(0,1)) x1 + (3,3) nil_A() = (1,1) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (1,0) tt_A() = (4,0) a__isNatList#_A(x1) = (1,0) cons_A(x1,x2) = (1,1) a__isNatKind#_A(x1) = (1,0) s_A(x1) = (1,1) length_A(x1) = (0,0) a__isNatIListKind#_A(x1) = (1,0) a__and#_A(x1,x2) = (1,0) a__isNatKind_A(x1) = (0,0) isNatIListKind_A(x1) = (1,1) mark#_A(x1) = (1,0) isNatKind_A(x1) = (1,1) and_A(x1,x2) = ((0,1),(1,0)) x1 + (14,1) mark_A(x1) = ((1,1),(1,1)) x1 + (11,10) a__length#_A(x1) = (0,1) a__U51#_A(x1,x2,x3) = (1,0) a__and_A(x1,x2) = ((0,1),(1,0)) x1 + (15,1) a__isNat#_A(x1) = (1,0) a__U21#_A(x1,x2) = (1,0) a__isNatIListKind_A(x1) = (14,13) a__U52#_A(x1,x2) = (1,0) a__isNat_A(x1) = (5,11) a__isNatList_A(x1) = (4,17) isNat_A(x1) = (0,0) a__U61#_A(x1,x2) = (0,1) U61_A(x1,x2) = (1,2) U53_A(x1) = (1,1) U52_A(x1,x2) = (0,1) U51_A(x1,x2,x3) = ((0,1),(1,0)) x1 + (1,1) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (8,1) a__isNatIList#_A(x1) = (1,1) a__U41#_A(x1,x2,x3) = (1,1) a__U42#_A(x1,x2) = (1,1) a__U31#_A(x1,x2) = (1,0) U43_A(x1) = (0,1) U42_A(x1,x2) = (0,0) U41_A(x1,x2,x3) = (0,0) U32_A(x1) = (1,1) U31_A(x1,x2) = ((1,1),(1,1)) x2 + (1,1) U22_A(x1) = (1,2) U21_A(x1,x2) = (0,1) isNatList_A(x1) = (5,1) U12_A(x1) = (1,1) U11_A(x1,x2) = (1,0) a__zeros_A() = (14,13) |0|_A() = (1,12) zeros_A() = (1,1) a__U11_A(x1,x2) = (4,11) a__U12_A(x1) = (5,1) a__U21_A(x1,x2) = (0,0) a__U22_A(x1) = (1,1) a__U31_A(x1,x2) = ((1,1),(1,1)) x2 + (6,12) a__U32_A(x1) = (5,12) a__U41_A(x1,x2,x3) = (10,0) a__U42_A(x1,x2) = (11,0) a__U43_A(x1) = (5,0) a__isNatIList_A(x1) = ((1,1),(0,0)) x1 + (7,20) a__U51_A(x1,x2,x3) = ((0,1),(1,0)) x1 + (2,1) a__U52_A(x1,x2) = (1,1) a__U53_A(x1) = (14,0) a__U61_A(x1,x2) = (14,1) a__length_A(x1) = (14,11) nil_A() = (1,0) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (0,1) tt_A() = (8,0) a__isNatList#_A(x1) = (0,1) cons_A(x1,x2) = (1,1) a__isNatKind#_A(x1) = (0,1) s_A(x1) = (1,0) length_A(x1) = (0,0) a__isNatIListKind#_A(x1) = (0,1) a__and#_A(x1,x2) = (0,1) a__isNatKind_A(x1) = (1,4) isNatIListKind_A(x1) = (1,1) mark#_A(x1) = (0,1) isNatKind_A(x1) = (2,1) and_A(x1,x2) = (5,0) mark_A(x1) = ((1,1),(1,1)) x1 + (4,0) a__length#_A(x1) = (1,0) a__U51#_A(x1,x2,x3) = (0,1) a__and_A(x1,x2) = (9,0) a__isNat#_A(x1) = (0,1) a__U21#_A(x1,x2) = (0,1) a__isNatIListKind_A(x1) = (8,5) a__U52#_A(x1,x2) = (0,1) a__isNat_A(x1) = (8,2) a__isNatList_A(x1) = (9,3) isNat_A(x1) = (1,3) a__U61#_A(x1,x2) = (1,0) U61_A(x1,x2) = (1,1) U53_A(x1) = (3,1) U52_A(x1,x2) = (1,0) U51_A(x1,x2,x3) = (1,0) isNatIList_A(x1) = (0,0) a__isNatIList#_A(x1) = (0,1) a__U41#_A(x1,x2,x3) = (0,1) a__U42#_A(x1,x2) = (0,1) a__U31#_A(x1,x2) = (0,1) U43_A(x1) = (9,0) U42_A(x1,x2) = (7,0) U41_A(x1,x2,x3) = (1,0) U32_A(x1) = (10,1) U31_A(x1,x2) = (0,0) U22_A(x1) = (9,1) U21_A(x1,x2) = (1,1) isNatList_A(x1) = (1,1) U12_A(x1) = (9,0) U11_A(x1,x2) = (1,0) a__zeros_A() = (2,3) |0|_A() = (4,0) zeros_A() = (2,1) a__U11_A(x1,x2) = (0,2) a__U12_A(x1) = (9,10) a__U21_A(x1,x2) = (0,1) a__U22_A(x1) = (8,2) a__U31_A(x1,x2) = (3,0) a__U32_A(x1) = (9,11) a__U41_A(x1,x2,x3) = (10,2) a__U42_A(x1,x2) = (11,3) a__U43_A(x1) = (8,0) a__isNatIList_A(x1) = (9,1) a__U51_A(x1,x2,x3) = (4,1) a__U52_A(x1,x2) = (2,1) a__U53_A(x1) = (8,1) a__U61_A(x1,x2) = (2,1) a__length_A(x1) = (3,1) nil_A() = (1,1) The next rules are strictly ordered: p9, p14, p15, p16, p27, p28, p30, p31, p32, p39, p49, p50, p51, p52, p53, p54, p55, p56, p61 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1) -> a__isNatList#(V1) p2: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1) p3: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p5: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p11: mark#(and(X1,X2)) -> mark#(X1) p12: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p13: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p14: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p15: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p16: a__isNat#(s(V1)) -> a__isNatKind#(V1) p17: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p18: a__U21#(tt(),V1) -> a__isNat#(V1) p19: a__isNat#(length(V1)) -> a__isNatIListKind#(V1) p20: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p21: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2) p22: a__U52#(tt(),V2) -> a__isNatList#(V2) p23: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) p24: a__U61#(tt(),L) -> a__length#(mark(L)) p25: mark#(U53(X)) -> mark#(X) p26: mark#(U52(X1,X2)) -> mark#(X1) p27: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2) p28: mark#(U51(X1,X2,X3)) -> mark#(X1) p29: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3) p30: a__isNatIList#(cons(V1,V2)) -> a__isNatKind#(V1) p31: a__isNatIList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p32: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p33: a__U41#(tt(),V1,V2) -> a__isNat#(V1) p34: a__U41#(tt(),V1,V2) -> a__U42#(a__isNat(V1),V2) p35: a__U42#(tt(),V2) -> a__isNatIList#(V2) p36: a__isNatIList#(V) -> a__isNatIListKind#(V) p37: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V) p38: a__U31#(tt(),V) -> a__isNatList#(V) p39: mark#(isNat(X)) -> a__isNat#(X) p40: mark#(U22(X)) -> mark#(X) p41: mark#(U21(X1,X2)) -> mark#(X1) p42: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p43: mark#(U12(X)) -> mark#(X) p44: mark#(U11(X1,X2)) -> mark#(X1) p45: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p32, p34, p35} {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p25, p26, p27, p28, p29, p39, p40, p41, p42, p43, p44, p45} {p23, p24} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p2: a__U41#(tt(),V1,V2) -> a__U42#(a__isNat(V1),V2) p3: a__U42#(tt(),V2) -> a__isNatIList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNatIList#_A(x1) = x1 cons_A(x1,x2) = ((0,1),(1,1)) x1 + ((1,1),(1,1)) x2 + (8,6) a__U41#_A(x1,x2,x3) = x3 + (2,0) a__and_A(x1,x2) = ((0,1),(1,1)) x2 + (9,6) a__isNatKind_A(x1) = ((1,1),(1,1)) x1 + (7,1) isNatIListKind_A(x1) = x1 + (1,1) tt_A() = (1,0) a__U42#_A(x1,x2) = x2 + (1,0) a__isNat_A(x1) = ((0,1),(1,1)) x1 + (7,1) a__zeros_A() = (8,6) |0|_A() = (0,0) zeros_A() = (0,0) a__U12_A(x1) = (2,1) a__U22_A(x1) = (2,0) a__U31_A(x1,x2) = ((0,1),(1,1)) x2 + (3,0) a__U32_A(x1) = (2,0) a__isNatList_A(x1) = ((1,0),(1,0)) x1 + (2,1) a__U41_A(x1,x2,x3) = ((1,1),(1,1)) x3 + (9,4) a__U42_A(x1,x2) = ((1,1),(1,1)) x2 + (7,4) a__U43_A(x1) = x1 + (2,3) a__isNatIList_A(x1) = ((0,1),(1,1)) x1 + (4,1) a__U51_A(x1,x2,x3) = (9,9) a__U52_A(x1,x2) = (8,1) a__U53_A(x1) = (2,1) a__U61_A(x1,x2) = ((1,1),(1,1)) x2 + (9,8) s_A(x1) = x1 a__length_A(x1) = x1 + (1,2) mark_A(x1) = ((0,1),(1,1)) x1 + (8,6) a__isNatIListKind_A(x1) = ((0,1),(0,1)) x1 + (8,2) nil_A() = (1,1) and_A(x1,x2) = ((0,1),(1,1)) x2 + (1,2) isNat_A(x1) = ((0,1),(1,1)) x1 isNatKind_A(x1) = ((0,1),(1,1)) x1 + (0,1) U12_A(x1) = (2,1) isNatList_A(x1) = ((1,0),(1,0)) x1 + (2,0) U22_A(x1) = (2,0) U31_A(x1,x2) = ((0,1),(1,1)) x2 + (3,0) U32_A(x1) = (1,0) U41_A(x1,x2,x3) = ((0,0),(1,1)) x3 + (8,1) U42_A(x1,x2) = ((1,1),(1,1)) x2 + (1,0) U43_A(x1) = x1 + (1,3) isNatIList_A(x1) = ((0,1),(1,1)) x1 + (1,0) U51_A(x1,x2,x3) = (1,9) U52_A(x1,x2) = (8,0) U53_A(x1) = (1,1) U61_A(x1,x2) = ((1,0),(1,1)) x2 + (1,2) length_A(x1) = x1 + (0,2) a__U11_A(x1,x2) = (2,1) a__U21_A(x1,x2) = x2 + (6,1) U11_A(x1,x2) = (2,1) U21_A(x1,x2) = x2 + (1,1) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNatIList#_A(x1) = x1 cons_A(x1,x2) = (0,0) a__U41#_A(x1,x2,x3) = (2,1) a__and_A(x1,x2) = (6,3) a__isNatKind_A(x1) = (6,3) isNatIListKind_A(x1) = (1,4) tt_A() = (0,4) a__U42#_A(x1,x2) = ((1,0),(1,0)) x2 + (1,2) a__isNat_A(x1) = (0,3) a__zeros_A() = (2,2) |0|_A() = (4,0) zeros_A() = (1,3) a__U12_A(x1) = (0,4) a__U22_A(x1) = (3,4) a__U31_A(x1,x2) = (1,3) a__U32_A(x1) = (0,4) a__isNatList_A(x1) = (2,4) a__U41_A(x1,x2,x3) = (3,2) a__U42_A(x1,x2) = (5,3) a__U43_A(x1) = x1 + (0,3) a__isNatIList_A(x1) = (2,1) a__U51_A(x1,x2,x3) = (3,3) a__U52_A(x1,x2) = (4,2) a__U53_A(x1) = (5,4) a__U61_A(x1,x2) = (2,1) s_A(x1) = (1,1) a__length_A(x1) = (3,3) mark_A(x1) = (4,2) a__isNatIListKind_A(x1) = (5,3) nil_A() = (4,0) and_A(x1,x2) = (6,0) isNat_A(x1) = (1,0) isNatKind_A(x1) = (6,4) U12_A(x1) = (0,0) isNatList_A(x1) = (1,0) U22_A(x1) = (1,0) U31_A(x1,x2) = (0,0) U32_A(x1) = (1,5) U41_A(x1,x2,x3) = (0,1) U42_A(x1,x2) = (0,0) U43_A(x1) = (0,4) isNatIList_A(x1) = (0,0) U51_A(x1,x2,x3) = (0,0) U52_A(x1,x2) = (0,0) U53_A(x1) = (6,0) U61_A(x1,x2) = ((0,0),(1,0)) x2 + (1,0) length_A(x1) = x1 + (4,0) a__U11_A(x1,x2) = (2,4) a__U21_A(x1,x2) = (2,2) U11_A(x1,x2) = (1,0) U21_A(x1,x2) = (0,0) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNatIList#_A(x1) = (0,0) cons_A(x1,x2) = (1,3) a__U41#_A(x1,x2,x3) = (2,0) a__and_A(x1,x2) = (1,1) a__isNatKind_A(x1) = (1,3) isNatIListKind_A(x1) = (9,1) tt_A() = (7,4) a__U42#_A(x1,x2) = (1,0) a__isNat_A(x1) = (2,0) a__zeros_A() = (2,0) |0|_A() = (2,3) zeros_A() = (3,1) a__U12_A(x1) = (2,1) a__U22_A(x1) = (8,4) a__U31_A(x1,x2) = (5,3) a__U32_A(x1) = (6,4) a__isNatList_A(x1) = (6,4) a__U41_A(x1,x2,x3) = (7,3) a__U42_A(x1,x2) = (9,4) a__U43_A(x1) = (8,3) a__isNatIList_A(x1) = (6,1) a__U51_A(x1,x2,x3) = (5,5) a__U52_A(x1,x2) = (2,1) a__U53_A(x1) = (5,4) a__U61_A(x1,x2) = (6,3) s_A(x1) = (5,4) a__length_A(x1) = (1,1) mark_A(x1) = (4,2) a__isNatIListKind_A(x1) = (8,4) nil_A() = (1,1) and_A(x1,x2) = (2,2) isNat_A(x1) = (1,1) isNatKind_A(x1) = (2,3) U12_A(x1) = (1,1) isNatList_A(x1) = (7,5) U22_A(x1) = (1,1) U31_A(x1,x2) = (1,0) U32_A(x1) = (7,4) U41_A(x1,x2,x3) = (8,4) U42_A(x1,x2) = (1,5) U43_A(x1) = (9,4) isNatIList_A(x1) = (1,2) U51_A(x1,x2,x3) = (1,1) U52_A(x1,x2) = (1,1) U53_A(x1) = (1,5) U61_A(x1,x2) = (7,4) length_A(x1) = ((0,0),(1,0)) x1 + (2,0) a__U11_A(x1,x2) = (0,0) a__U21_A(x1,x2) = (3,0) U11_A(x1,x2) = (1,0) U21_A(x1,x2) = (4,1) The next rules are strictly ordered: p1, p2, p3 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__U11#(tt(),V1) -> a__isNatList#(V1) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p3: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2) p4: a__U52#(tt(),V2) -> a__isNatList#(V2) p5: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2) p8: mark#(U11(X1,X2)) -> mark#(X1) p9: mark#(U12(X)) -> mark#(X) p10: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p11: a__U21#(tt(),V1) -> a__isNat#(V1) p12: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p13: a__isNat#(length(V1)) -> a__isNatIListKind#(V1) p14: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p15: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p16: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p17: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p18: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p19: a__isNat#(s(V1)) -> a__isNatKind#(V1) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(U22(X)) -> mark#(X) p22: mark#(isNat(X)) -> a__isNat#(X) p23: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3) p24: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p25: mark#(U51(X1,X2,X3)) -> mark#(X1) p26: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2) p27: mark#(U52(X1,X2)) -> mark#(X1) p28: mark#(U53(X)) -> mark#(X) p29: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p30: mark#(and(X1,X2)) -> mark#(X1) p31: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p32: mark#(isNatKind(X)) -> a__isNatKind#(X) p33: mark#(s(X)) -> mark#(X) p34: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (3,0) tt_A() = (0,2) a__isNatList#_A(x1) = (3,0) cons_A(x1,x2) = ((0,0),(1,1)) x1 + ((0,0),(1,1)) x2 + (0,2) a__U51#_A(x1,x2,x3) = ((0,1),(0,0)) x1 + (1,0) a__and_A(x1,x2) = x1 + x2 a__isNatKind_A(x1) = (0,2) isNatIListKind_A(x1) = (0,0) a__U52#_A(x1,x2) = (3,0) a__isNat_A(x1) = ((0,0),(1,1)) x1 + (0,3) a__and#_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,0)) x2 mark#_A(x1) = ((0,1),(0,0)) x1 + (2,0) U11_A(x1,x2) = x1 + x2 + (0,2) mark_A(x1) = x1 + (0,2) U12_A(x1) = x1 U21_A(x1,x2) = x1 + ((0,0),(1,1)) x2 + (0,1) a__U21#_A(x1,x2) = ((0,1),(0,0)) x1 + (1,0) a__isNat#_A(x1) = (3,0) length_A(x1) = ((0,0),(1,1)) x1 + (0,1) a__isNatIListKind_A(x1) = (0,2) a__isNatIListKind#_A(x1) = (2,0) a__isNatKind#_A(x1) = (2,0) s_A(x1) = x1 U22_A(x1) = x1 isNat_A(x1) = ((0,0),(1,1)) x1 + (0,3) U51_A(x1,x2,x3) = x1 + ((0,0),(1,1)) x2 + x3 + (0,3) U52_A(x1,x2) = x1 + x2 + (0,2) U53_A(x1) = x1 + (0,1) and_A(x1,x2) = x1 + x2 isNatKind_A(x1) = (0,0) a__zeros_A() = (0,2) |0|_A() = (0,0) zeros_A() = (0,0) a__U11_A(x1,x2) = x1 + x2 + (0,2) a__U12_A(x1) = x1 a__isNatList_A(x1) = x1 + (0,3) a__U21_A(x1,x2) = x1 + ((0,0),(1,1)) x2 + (0,1) a__U22_A(x1) = x1 a__U31_A(x1,x2) = (0,2) a__U32_A(x1) = (0,2) a__U41_A(x1,x2,x3) = x1 + (0,1) a__U42_A(x1,x2) = (0,2) a__U43_A(x1) = (0,2) a__isNatIList_A(x1) = (0,3) a__U51_A(x1,x2,x3) = x1 + ((0,0),(1,1)) x2 + x3 + (0,3) a__U52_A(x1,x2) = x1 + x2 + (0,2) a__U53_A(x1) = x1 + (0,1) a__U61_A(x1,x2) = ((0,0),(1,1)) x2 + (0,3) a__length_A(x1) = ((0,0),(1,1)) x1 + (0,1) nil_A() = (0,1) isNatList_A(x1) = x1 + (0,3) U31_A(x1,x2) = (0,2) U32_A(x1) = (0,2) U41_A(x1,x2,x3) = x1 + (0,1) U42_A(x1,x2) = (0,2) U43_A(x1) = (0,2) isNatIList_A(x1) = (0,3) U61_A(x1,x2) = ((0,0),(1,1)) x2 + (0,3) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (0,0) tt_A() = (2,0) a__isNatList#_A(x1) = (0,0) cons_A(x1,x2) = (0,1) a__U51#_A(x1,x2,x3) = (0,0) a__and_A(x1,x2) = (7,1) a__isNatKind_A(x1) = (7,1) isNatIListKind_A(x1) = (1,1) a__U52#_A(x1,x2) = (0,0) a__isNat_A(x1) = (5,1) a__and#_A(x1,x2) = (1,1) mark#_A(x1) = (1,1) U11_A(x1,x2) = (1,0) mark_A(x1) = (7,1) U12_A(x1) = (1,0) U21_A(x1,x2) = (0,0) a__U21#_A(x1,x2) = (0,0) a__isNat#_A(x1) = (0,0) length_A(x1) = (2,1) a__isNatIListKind_A(x1) = (7,1) a__isNatIListKind#_A(x1) = (1,1) a__isNatKind#_A(x1) = (1,1) s_A(x1) = (1,1) U22_A(x1) = (0,0) isNat_A(x1) = (1,1) U51_A(x1,x2,x3) = (0,0) U52_A(x1,x2) = (1,1) U53_A(x1) = (1,0) and_A(x1,x2) = (1,1) isNatKind_A(x1) = (1,0) a__zeros_A() = (1,1) |0|_A() = (1,1) zeros_A() = (0,0) a__U11_A(x1,x2) = (3,1) a__U12_A(x1) = (2,1) a__isNatList_A(x1) = (6,1) a__U21_A(x1,x2) = (4,1) a__U22_A(x1) = (3,1) a__U31_A(x1,x2) = (5,1) a__U32_A(x1) = (5,1) a__U41_A(x1,x2,x3) = (5,1) a__U42_A(x1,x2) = (4,1) a__U43_A(x1) = (3,1) a__isNatIList_A(x1) = (6,1) a__U51_A(x1,x2,x3) = (5,1) a__U52_A(x1,x2) = (4,1) a__U53_A(x1) = (3,0) a__U61_A(x1,x2) = (2,1) a__length_A(x1) = (3,1) nil_A() = (0,0) isNatList_A(x1) = (0,0) U31_A(x1,x2) = (1,0) U32_A(x1) = (0,0) U41_A(x1,x2,x3) = (1,0) U42_A(x1,x2) = (1,0) U43_A(x1) = (0,0) isNatIList_A(x1) = (0,0) U61_A(x1,x2) = (0,0) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (1,0) tt_A() = (1,2) a__isNatList#_A(x1) = (1,0) cons_A(x1,x2) = (2,0) a__U51#_A(x1,x2,x3) = (1,0) a__and_A(x1,x2) = (6,2) a__isNatKind_A(x1) = (6,2) isNatIListKind_A(x1) = (7,1) a__U52#_A(x1,x2) = (1,0) a__isNat_A(x1) = (3,3) a__and#_A(x1,x2) = (0,0) mark#_A(x1) = (0,0) U11_A(x1,x2) = (0,0) mark_A(x1) = (6,2) U12_A(x1) = (0,0) U21_A(x1,x2) = (0,1) a__U21#_A(x1,x2) = (1,0) a__isNat#_A(x1) = (1,0) length_A(x1) = (1,1) a__isNatIListKind_A(x1) = (6,2) a__isNatIListKind#_A(x1) = (0,0) a__isNatKind#_A(x1) = (0,0) s_A(x1) = (2,0) U22_A(x1) = (0,0) isNat_A(x1) = (0,0) U51_A(x1,x2,x3) = (0,2) U52_A(x1,x2) = (0,0) U53_A(x1) = (0,0) and_A(x1,x2) = (1,1) isNatKind_A(x1) = (1,0) a__zeros_A() = (2,1) |0|_A() = (1,1) zeros_A() = (1,1) a__U11_A(x1,x2) = (7,4) a__U12_A(x1) = (1,2) a__isNatList_A(x1) = (5,1) a__U21_A(x1,x2) = (3,0) a__U22_A(x1) = (2,0) a__U31_A(x1,x2) = (5,4) a__U32_A(x1) = (4,3) a__U41_A(x1,x2,x3) = (7,3) a__U42_A(x1,x2) = (8,4) a__U43_A(x1) = (9,3) a__isNatIList_A(x1) = (8,3) a__U51_A(x1,x2,x3) = (4,1) a__U52_A(x1,x2) = (3,1) a__U53_A(x1) = (2,1) a__U61_A(x1,x2) = (1,2) a__length_A(x1) = (2,2) nil_A() = (0,0) isNatList_A(x1) = (0,2) U31_A(x1,x2) = (0,0) U32_A(x1) = (0,4) U41_A(x1,x2,x3) = (8,4) U42_A(x1,x2) = (0,5) U43_A(x1) = (10,0) isNatIList_A(x1) = (0,0) U61_A(x1,x2) = (0,0) The next rules are strictly ordered: p5, p7, p8, p10, p13, p19, p20, p22, p23, p25, p26, p27, p28, p34 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1) -> a__isNatList#(V1) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p3: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2) p4: a__U52#(tt(),V2) -> a__isNatList#(V2) p5: a__and#(tt(),X) -> mark#(X) p6: mark#(U12(X)) -> mark#(X) p7: a__U21#(tt(),V1) -> a__isNat#(V1) p8: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p9: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p10: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p11: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p12: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p13: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p14: mark#(U22(X)) -> mark#(X) p15: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p16: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p17: mark#(and(X1,X2)) -> mark#(X1) p18: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p19: mark#(isNatKind(X)) -> a__isNatKind#(X) p20: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p7, p8, p13, p15} {p5, p6, p9, p10, p11, p12, p14, p16, p17, p18, p19, p20} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1) -> a__isNatList#(V1) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) p3: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p4: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p5: a__U21#(tt(),V1) -> a__isNat#(V1) p6: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1) p7: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2) p8: a__U52#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = ((0,1),(0,0)) x2 + (1,0) tt_A() = (1,2) a__isNatList#_A(x1) = ((0,1),(0,0)) x1 cons_A(x1,x2) = x1 + x2 + (0,5) a__U51#_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((0,1),(0,0)) x3 + (4,0) a__and_A(x1,x2) = x1 + ((0,1),(0,1)) x2 + (7,8) a__isNatKind_A(x1) = ((0,1),(0,1)) x1 + (2,2) isNatIListKind_A(x1) = x1 + (1,1) a__isNat#_A(x1) = ((0,1),(0,0)) x1 s_A(x1) = x1 + (2,0) a__U21#_A(x1,x2) = ((0,1),(0,0)) x2 length_A(x1) = x1 + (0,5) a__isNatIListKind_A(x1) = ((0,1),(0,1)) x1 + (6,6) a__U52#_A(x1,x2) = ((0,1),(0,0)) x2 a__isNat_A(x1) = ((1,0),(1,0)) x1 + (4,2) a__zeros_A() = (2,6) |0|_A() = (1,0) zeros_A() = (1,1) a__U12_A(x1) = (2,2) a__U22_A(x1) = (2,2) a__U31_A(x1,x2) = ((1,1),(1,1)) x2 + (0,1) a__U32_A(x1) = ((0,1),(0,1)) x1 a__isNatList_A(x1) = ((1,0),(1,1)) x1 + (5,0) a__U41_A(x1,x2,x3) = (4,5) a__U42_A(x1,x2) = (3,2) a__U43_A(x1) = (2,2) a__isNatIList_A(x1) = ((1,1),(1,1)) x1 + (1,1) a__U51_A(x1,x2,x3) = (4,2) a__U52_A(x1,x2) = (3,2) a__U53_A(x1) = (2,2) a__U61_A(x1,x2) = x2 + (2,10) a__length_A(x1) = x1 + (2,5) mark_A(x1) = ((0,1),(0,1)) x1 + (6,5) nil_A() = (0,2) and_A(x1,x2) = x1 + x2 + (1,8) isNat_A(x1) = ((1,0),(1,0)) x1 + (1,1) isNatKind_A(x1) = x1 + (1,1) U12_A(x1) = (0,0) isNatList_A(x1) = ((0,0),(1,1)) x1 U22_A(x1) = (2,0) U31_A(x1,x2) = ((0,0),(1,1)) x2 U32_A(x1) = x1 U41_A(x1,x2,x3) = (0,0) U42_A(x1,x2) = (0,0) U43_A(x1) = (0,0) isNatIList_A(x1) = ((0,0),(1,1)) x1 U51_A(x1,x2,x3) = (4,0) U52_A(x1,x2) = (0,0) U53_A(x1) = (0,0) U61_A(x1,x2) = x2 + (0,5) a__U11_A(x1,x2) = (3,2) a__U21_A(x1,x2) = (3,4) U11_A(x1,x2) = (0,0) U21_A(x1,x2) = (0,0) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (0,1) tt_A() = (3,4) a__isNatList#_A(x1) = (1,2) cons_A(x1,x2) = (1,3) a__U51#_A(x1,x2,x3) = (2,3) a__and_A(x1,x2) = ((0,1),(0,0)) x1 + (0,3) a__isNatKind_A(x1) = (3,0) isNatIListKind_A(x1) = (7,1) a__isNat#_A(x1) = (1,0) s_A(x1) = (0,2) a__U21#_A(x1,x2) = (1,0) length_A(x1) = (6,3) a__isNatIListKind_A(x1) = (6,2) a__U52#_A(x1,x2) = (2,4) a__isNat_A(x1) = (3,0) a__zeros_A() = (6,2) |0|_A() = (4,1) zeros_A() = (1,3) a__U12_A(x1) = (0,4) a__U22_A(x1) = (4,4) a__U31_A(x1,x2) = (7,4) a__U32_A(x1) = (6,4) a__isNatList_A(x1) = (4,2) a__U41_A(x1,x2,x3) = (6,3) a__U42_A(x1,x2) = (1,2) a__U43_A(x1) = (2,3) a__isNatIList_A(x1) = (1,2) a__U51_A(x1,x2,x3) = (0,1) a__U52_A(x1,x2) = (0,2) a__U53_A(x1) = (6,3) a__U61_A(x1,x2) = (6,2) a__length_A(x1) = (6,2) mark_A(x1) = (5,1) nil_A() = (1,0) and_A(x1,x2) = ((1,1),(1,0)) x1 + (0,4) isNat_A(x1) = (3,0) isNatKind_A(x1) = (3,1) U12_A(x1) = (0,0) isNatList_A(x1) = (4,1) U22_A(x1) = (0,0) U31_A(x1,x2) = (0,0) U32_A(x1) = (0,0) U41_A(x1,x2,x3) = (0,4) U42_A(x1,x2) = (0,3) U43_A(x1) = (0,4) isNatIList_A(x1) = (0,3) U51_A(x1,x2,x3) = (0,1) U52_A(x1,x2) = (1,3) U53_A(x1) = (0,4) U61_A(x1,x2) = (0,1) a__U11_A(x1,x2) = (0,2) a__U21_A(x1,x2) = (6,2) U11_A(x1,x2) = (1,3) U21_A(x1,x2) = (0,3) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__U11#_A(x1,x2) = (0,1) tt_A() = (7,0) a__isNatList#_A(x1) = (3,2) cons_A(x1,x2) = (0,0) a__U51#_A(x1,x2,x3) = (2,2) a__and_A(x1,x2) = (3,1) a__isNatKind_A(x1) = (4,3) isNatIListKind_A(x1) = (4,5) a__isNat#_A(x1) = (1,0) s_A(x1) = (2,2) a__U21#_A(x1,x2) = (1,0) length_A(x1) = (5,4) a__isNatIListKind_A(x1) = (3,4) a__U52#_A(x1,x2) = (4,2) a__isNat_A(x1) = (7,3) a__zeros_A() = (4,3) |0|_A() = (0,4) zeros_A() = (0,4) a__U12_A(x1) = (9,5) a__U22_A(x1) = (8,3) a__U31_A(x1,x2) = (5,3) a__U32_A(x1) = (4,3) a__isNatList_A(x1) = (8,3) a__U41_A(x1,x2,x3) = (2,4) a__U42_A(x1,x2) = (4,5) a__U43_A(x1) = (1,6) a__isNatIList_A(x1) = (6,3) a__U51_A(x1,x2,x3) = (9,4) a__U52_A(x1,x2) = (1,3) a__U53_A(x1) = (8,0) a__U61_A(x1,x2) = (1,3) a__length_A(x1) = (4,3) mark_A(x1) = (3,2) nil_A() = (0,0) and_A(x1,x2) = ((0,0),(1,0)) x1 isNat_A(x1) = (8,4) isNatKind_A(x1) = (5,4) U12_A(x1) = (10,0) isNatList_A(x1) = (9,4) U22_A(x1) = (9,4) U31_A(x1,x2) = (0,0) U32_A(x1) = (0,0) U41_A(x1,x2,x3) = (0,0) U42_A(x1,x2) = (0,0) U43_A(x1) = (0,0) isNatIList_A(x1) = (0,4) U51_A(x1,x2,x3) = (0,0) U52_A(x1,x2) = (0,0) U53_A(x1) = (0,0) U61_A(x1,x2) = (0,0) a__U11_A(x1,x2) = (8,4) a__U21_A(x1,x2) = (9,4) U11_A(x1,x2) = (9,5) U21_A(x1,x2) = (10,5) The next rules are strictly ordered: p1, p2, p3, p6, p7, p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p2: a__U21#(tt(),V1) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p2: a__U21#(tt(),V1) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNat#_A(x1) = ((1,1),(0,0)) x1 s_A(x1) = x1 + (0,2) a__U21#_A(x1,x2) = ((1,1),(0,0)) x2 + (1,0) a__isNatKind_A(x1) = x1 + (15,30) tt_A() = (15,31) a__zeros_A() = (16,32) cons_A(x1,x2) = ((0,0),(1,1)) x1 + ((1,1),(1,1)) x2 + (0,14) |0|_A() = (1,1) zeros_A() = (16,0) a__U11_A(x1,x2) = (17,31) a__U12_A(x1) = (16,31) a__isNatList_A(x1) = ((0,1),(1,0)) x1 + (1,5) a__U21_A(x1,x2) = (17,31) a__U22_A(x1) = (16,31) a__isNat_A(x1) = (18,31) a__U31_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (17,16) a__U32_A(x1) = (16,31) a__U41_A(x1,x2,x3) = ((0,1),(0,0)) x3 + (18,31) a__U42_A(x1,x2) = (17,31) a__U43_A(x1) = (16,31) a__isNatIList_A(x1) = ((1,0),(1,1)) x1 + (19,17) a__U51_A(x1,x2,x3) = ((0,0),(1,0)) x1 + x2 + ((0,1),(0,1)) x3 + (15,5) a__U52_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,1),(0,1)) x2 + (15,2) a__U53_A(x1) = ((0,0),(1,0)) x1 + (15,16) a__U61_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,4) a__length_A(x1) = ((1,0),(1,1)) x1 + (0,1) mark_A(x1) = x1 + (0,32) length_A(x1) = ((1,0),(1,1)) x1 + (0,1) a__isNatIListKind_A(x1) = x1 + (0,31) a__and_A(x1,x2) = x1 + x2 + (0,1) isNatIListKind_A(x1) = x1 + (0,1) nil_A() = (26,15) and_A(x1,x2) = x1 + x2 + (0,1) isNat_A(x1) = (18,1) isNatKind_A(x1) = x1 + (15,1) U11_A(x1,x2) = (17,1) U12_A(x1) = (16,31) isNatList_A(x1) = ((0,1),(1,0)) x1 + (1,1) U21_A(x1,x2) = (17,1) U22_A(x1) = (16,31) U31_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (17,1) U32_A(x1) = (16,1) U41_A(x1,x2,x3) = ((0,1),(0,0)) x3 + (18,1) U42_A(x1,x2) = (17,31) U43_A(x1) = (16,31) isNatIList_A(x1) = ((1,0),(1,1)) x1 + (19,1) U51_A(x1,x2,x3) = ((0,0),(1,0)) x1 + x2 + ((0,1),(0,1)) x3 + (15,1) U52_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,1),(0,1)) x2 + (15,1) U53_A(x1) = ((0,0),(1,0)) x1 + (15,1) U61_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,4) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNat#_A(x1) = ((1,1),(0,0)) x1 + (1,0) s_A(x1) = (1,1) a__U21#_A(x1,x2) = (0,0) a__isNatKind_A(x1) = (2,1) tt_A() = (6,7) a__zeros_A() = (11,14) cons_A(x1,x2) = ((1,0),(1,1)) x2 + (0,10) |0|_A() = (1,1) zeros_A() = (4,0) a__U11_A(x1,x2) = (6,2) a__U12_A(x1) = (6,7) a__isNatList_A(x1) = (10,7) a__U21_A(x1,x2) = (2,1) a__U22_A(x1) = (7,1) a__isNat_A(x1) = (7,1) a__U31_A(x1,x2) = ((1,1),(1,1)) x2 + (6,7) a__U32_A(x1) = (7,8) a__U41_A(x1,x2,x3) = (11,11) a__U42_A(x1,x2) = (12,13) a__U43_A(x1) = (6,6) a__isNatIList_A(x1) = (5,6) a__U51_A(x1,x2,x3) = (9,7) a__U52_A(x1,x2) = (8,7) a__U53_A(x1) = (7,7) a__U61_A(x1,x2) = (2,1) a__length_A(x1) = (3,14) mark_A(x1) = ((0,1),(1,1)) x1 + (11,10) length_A(x1) = (3,1) a__isNatIListKind_A(x1) = ((1,1),(1,1)) x1 + (3,2) a__and_A(x1,x2) = ((1,1),(1,1)) x2 + (11,10) isNatIListKind_A(x1) = ((0,0),(1,1)) x1 + (1,0) nil_A() = (1,1) and_A(x1,x2) = ((1,1),(1,1)) x2 + (1,0) isNat_A(x1) = (1,1) isNatKind_A(x1) = (1,1) U11_A(x1,x2) = (1,1) U12_A(x1) = (6,1) isNatList_A(x1) = (1,0) U21_A(x1,x2) = (1,1) U22_A(x1) = (1,1) U31_A(x1,x2) = ((1,1),(1,1)) x2 + (1,0) U32_A(x1) = (1,1) U41_A(x1,x2,x3) = (1,0) U42_A(x1,x2) = (1,2) U43_A(x1) = (1,1) isNatIList_A(x1) = (1,1) U51_A(x1,x2,x3) = (1,1) U52_A(x1,x2) = (1,1) U53_A(x1) = (1,0) U61_A(x1,x2) = (2,0) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNat#_A(x1) = ((0,1),(0,0)) x1 s_A(x1) = (1,1) a__U21#_A(x1,x2) = (1,0) a__isNatKind_A(x1) = (2,1) tt_A() = (1,0) a__zeros_A() = (1,0) cons_A(x1,x2) = x2 |0|_A() = (0,0) zeros_A() = (2,0) a__U11_A(x1,x2) = (5,2) a__U12_A(x1) = (6,3) a__isNatList_A(x1) = (5,1) a__U21_A(x1,x2) = (0,1) a__U22_A(x1) = (1,0) a__isNat_A(x1) = (2,1) a__U31_A(x1,x2) = (3,0) a__U32_A(x1) = (5,1) a__U41_A(x1,x2,x3) = (0,0) a__U42_A(x1,x2) = (2,0) a__U43_A(x1) = (1,0) a__isNatIList_A(x1) = (2,1) a__U51_A(x1,x2,x3) = (2,0) a__U52_A(x1,x2) = (1,0) a__U53_A(x1) = (0,0) a__U61_A(x1,x2) = (2,1) a__length_A(x1) = (5,1) mark_A(x1) = (4,0) length_A(x1) = (0,1) a__isNatIListKind_A(x1) = (3,0) a__and_A(x1,x2) = (4,0) isNatIListKind_A(x1) = (1,0) nil_A() = (0,1) and_A(x1,x2) = ((0,0),(1,0)) x2 isNat_A(x1) = (0,0) isNatKind_A(x1) = (2,0) U11_A(x1,x2) = (0,0) U12_A(x1) = (0,0) isNatList_A(x1) = (0,2) U21_A(x1,x2) = (0,0) U22_A(x1) = (0,0) U31_A(x1,x2) = (0,0) U32_A(x1) = (0,0) U41_A(x1,x2,x3) = (0,0) U42_A(x1,x2) = (0,0) U43_A(x1) = (0,0) isNatIList_A(x1) = (0,2) U51_A(x1,x2,x3) = (0,0) U52_A(x1,x2) = (0,0) U53_A(x1) = (0,0) U61_A(x1,x2) = (0,0) The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__and#(tt(),X) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(isNatKind(X)) -> a__isNatKind#(X) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p6: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p7: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p8: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p9: mark#(and(X1,X2)) -> mark#(X1) p10: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p11: mark#(U22(X)) -> mark#(X) p12: mark#(U12(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = ((0,1),(0,0)) x2 tt_A() = (0,0) mark#_A(x1) = ((0,1),(0,0)) x1 s_A(x1) = x1 + (1,0) isNatKind_A(x1) = ((0,1),(0,0)) x1 a__isNatKind#_A(x1) = (0,0) length_A(x1) = x1 + (1,4) a__isNatIListKind#_A(x1) = (0,0) cons_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,0),(1,1)) x2 + (5,0) a__isNatKind_A(x1) = ((0,1),(0,0)) x1 isNatIListKind_A(x1) = ((0,1),(0,0)) x1 + (1,0) and_A(x1,x2) = ((1,1),(0,1)) x1 + ((1,1),(0,1)) x2 + (2,0) mark_A(x1) = ((1,1),(0,1)) x1 + (2,0) U22_A(x1) = x1 + (1,0) U12_A(x1) = x1 + (1,1) a__zeros_A() = (6,5) |0|_A() = (1,0) zeros_A() = (0,5) a__U11_A(x1,x2) = ((0,1),(0,1)) x2 + (7,1) a__U12_A(x1) = x1 + (2,1) a__isNatList_A(x1) = ((1,1),(0,1)) x1 a__U21_A(x1,x2) = ((0,1),(0,1)) x2 + (3,1) a__U22_A(x1) = x1 + (1,0) a__isNat_A(x1) = ((1,1),(0,1)) x1 + (2,1) a__U31_A(x1,x2) = (4,1) a__U32_A(x1) = (2,1) a__U41_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((1,1),(0,0)) x3 + (5,1) a__U42_A(x1,x2) = ((1,1),(0,0)) x2 + (3,1) a__U43_A(x1) = x1 + (2,0) a__isNatIList_A(x1) = ((0,1),(0,0)) x1 + (5,1) a__U51_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((1,1),(1,0)) x3 + (4,0) a__U52_A(x1,x2) = ((0,1),(1,0)) x2 + (3,0) a__U53_A(x1) = (2,0) a__U61_A(x1,x2) = ((0,1),(0,0)) x1 + ((1,0),(1,1)) x2 + (1,4) a__length_A(x1) = ((0,1),(0,1)) x1 + (2,4) a__and_A(x1,x2) = ((1,1),(0,1)) x1 + ((1,1),(0,1)) x2 + (2,0) a__isNatIListKind_A(x1) = ((0,1),(0,0)) x1 + (3,0) nil_A() = (1,1) isNat_A(x1) = ((1,1),(0,1)) x1 + (1,1) U11_A(x1,x2) = x2 + (5,1) isNatList_A(x1) = ((1,1),(0,1)) x1 U21_A(x1,x2) = ((0,1),(0,1)) x2 + (1,1) U31_A(x1,x2) = (1,1) U32_A(x1) = (1,1) U41_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((1,1),(0,0)) x3 + (3,1) U42_A(x1,x2) = ((1,1),(0,0)) x2 + (1,1) U43_A(x1) = x1 + (1,0) isNatIList_A(x1) = ((0,1),(0,0)) x1 + (3,1) U51_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((0,1),(1,0)) x3 + (3,0) U52_A(x1,x2) = ((0,1),(1,0)) x2 + (2,0) U53_A(x1) = (1,0) U61_A(x1,x2) = ((0,1),(0,0)) x1 + ((1,0),(1,1)) x2 + (1,4) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = (0,0) tt_A() = (0,2) mark#_A(x1) = (0,0) s_A(x1) = (1,5) isNatKind_A(x1) = (2,1) a__isNatKind#_A(x1) = (0,0) length_A(x1) = (6,11) a__isNatIListKind#_A(x1) = (0,0) cons_A(x1,x2) = (1,5) a__isNatKind_A(x1) = (3,2) isNatIListKind_A(x1) = (0,1) and_A(x1,x2) = x2 + (1,1) mark_A(x1) = ((1,0),(1,0)) x1 + (2,3) U22_A(x1) = (0,0) U12_A(x1) = (0,0) a__zeros_A() = (3,4) |0|_A() = (0,0) zeros_A() = (0,0) a__U11_A(x1,x2) = (3,1) a__U12_A(x1) = (4,1) a__isNatList_A(x1) = ((1,1),(0,0)) x1 + (4,5) a__U21_A(x1,x2) = (0,0) a__U22_A(x1) = (1,1) a__isNat_A(x1) = (4,4) a__U31_A(x1,x2) = (4,6) a__U32_A(x1) = (5,7) a__U41_A(x1,x2,x3) = (2,5) a__U42_A(x1,x2) = (3,6) a__U43_A(x1) = (4,7) a__isNatIList_A(x1) = (5,5) a__U51_A(x1,x2,x3) = (11,12) a__U52_A(x1,x2) = (4,13) a__U53_A(x1) = (5,14) a__U61_A(x1,x2) = (4,5) a__length_A(x1) = (5,10) a__and_A(x1,x2) = ((1,0),(1,0)) x2 + (2,3) a__isNatIListKind_A(x1) = (2,3) nil_A() = (1,5) isNat_A(x1) = (0,5) U11_A(x1,x2) = (1,0) isNatList_A(x1) = x1 + (1,1) U21_A(x1,x2) = (1,1) U31_A(x1,x2) = (3,1) U32_A(x1) = (1,8) U41_A(x1,x2,x3) = (1,6) U42_A(x1,x2) = (2,7) U43_A(x1) = (1,8) isNatIList_A(x1) = (2,6) U51_A(x1,x2,x3) = (8,13) U52_A(x1,x2) = (1,0) U53_A(x1) = (3,15) U61_A(x1,x2) = (1,1) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = (0,0) tt_A() = (0,16) mark#_A(x1) = (0,0) s_A(x1) = (5,1) isNatKind_A(x1) = (1,0) a__isNatKind#_A(x1) = (0,0) length_A(x1) = (8,5) a__isNatIListKind#_A(x1) = (0,0) cons_A(x1,x2) = (3,5) a__isNatKind_A(x1) = (5,0) isNatIListKind_A(x1) = (4,1) and_A(x1,x2) = (0,0) mark_A(x1) = ((0,0),(1,1)) x1 + (4,1) U22_A(x1) = (6,0) U12_A(x1) = (0,0) a__zeros_A() = (2,4) |0|_A() = (8,0) zeros_A() = (1,1) a__U11_A(x1,x2) = (2,2) a__U12_A(x1) = (5,16) a__isNatList_A(x1) = x1 + (6,1) a__U21_A(x1,x2) = (0,4) a__U22_A(x1) = (5,16) a__isNat_A(x1) = (1,2) a__U31_A(x1,x2) = (9,13) a__U32_A(x1) = (5,16) a__U41_A(x1,x2,x3) = (7,13) a__U42_A(x1,x2) = (6,14) a__U43_A(x1) = (5,15) a__isNatIList_A(x1) = (8,12) a__U51_A(x1,x2,x3) = (5,9) a__U52_A(x1,x2) = (6,10) a__U53_A(x1) = (10,11) a__U61_A(x1,x2) = (6,4) a__length_A(x1) = (7,4) a__and_A(x1,x2) = ((0,0),(1,1)) x2 + (4,1) a__isNatIListKind_A(x1) = (4,6) nil_A() = (1,1) isNat_A(x1) = (0,0) U11_A(x1,x2) = (1,1) isNatList_A(x1) = ((1,0),(1,1)) x1 + (7,2) U21_A(x1,x2) = (1,1) U31_A(x1,x2) = (1,1) U32_A(x1) = (1,13) U41_A(x1,x2,x3) = (8,3) U42_A(x1,x2) = (1,1) U43_A(x1) = (1,1) isNatIList_A(x1) = (9,1) U51_A(x1,x2,x3) = (6,1) U52_A(x1,x2) = (1,1) U53_A(x1) = (9,1) U61_A(x1,x2) = (1,1) The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__and#(tt(),X) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(isNatKind(X)) -> a__isNatKind#(X) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p6: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p7: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p8: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p9: mark#(and(X1,X2)) -> mark#(X1) p10: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p11: mark#(U22(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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: a__and#(tt(),X) -> mark#(X) p2: mark#(U22(X)) -> mark#(X) p3: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p4: mark#(and(X1,X2)) -> mark#(X1) p5: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X) p6: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2)) p7: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1) p8: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p9: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p10: mark#(isNatKind(X)) -> a__isNatKind#(X) p11: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = x1 + ((1,1),(0,0)) x2 tt_A() = (5,5) mark#_A(x1) = ((1,1),(0,0)) x1 + (5,0) U22_A(x1) = x1 and_A(x1,x2) = x1 + ((1,1),(0,0)) x2 mark_A(x1) = ((1,1),(1,1)) x1 + (5,5) isNatIListKind_A(x1) = ((0,1),(1,0)) x1 a__isNatIListKind#_A(x1) = x1 + (5,0) cons_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + (5,5) a__isNatKind_A(x1) = x1 + (6,5) a__isNatKind#_A(x1) = ((0,1),(0,0)) x1 + (9,0) length_A(x1) = ((0,1),(1,0)) x1 + (1,1) s_A(x1) = x1 isNatKind_A(x1) = x1 + (5,5) a__zeros_A() = (9,9) |0|_A() = (0,0) zeros_A() = (1,3) a__U11_A(x1,x2) = (7,5) a__U12_A(x1) = (6,5) a__isNatList_A(x1) = ((1,0),(1,0)) x1 + (1,1) a__U21_A(x1,x2) = x2 + (7,5) a__U22_A(x1) = x1 a__isNat_A(x1) = x1 + (7,5) a__U31_A(x1,x2) = ((1,1),(1,1)) x2 + (6,1) a__U32_A(x1) = ((0,1),(1,0)) x1 a__U41_A(x1,x2,x3) = x1 + ((0,0),(1,1)) x3 + (3,2) a__U42_A(x1,x2) = ((0,0),(1,1)) x2 + (7,5) a__U43_A(x1) = (6,5) a__isNatIList_A(x1) = ((1,1),(1,1)) x1 + (6,1) a__U51_A(x1,x2,x3) = x2 + ((1,1),(1,1)) x3 + (5,6) a__U52_A(x1,x2) = ((1,1),(1,1)) x2 + (4,3) a__U53_A(x1) = x1 + (2,2) a__U61_A(x1,x2) = ((1,1),(1,1)) x2 + (7,6) a__length_A(x1) = ((0,1),(1,0)) x1 + (2,1) a__and_A(x1,x2) = x1 + ((1,1),(1,1)) x2 a__isNatIListKind_A(x1) = ((0,1),(1,0)) x1 + (5,4) nil_A() = (5,0) isNat_A(x1) = x1 + (2,0) U11_A(x1,x2) = (2,1) U12_A(x1) = (1,5) isNatList_A(x1) = ((1,0),(1,0)) x1 U21_A(x1,x2) = x2 + (1,1) U31_A(x1,x2) = ((0,1),(1,0)) x2 + (1,1) U32_A(x1) = ((0,1),(1,0)) x1 U41_A(x1,x2,x3) = x1 + ((0,0),(1,1)) x3 + (2,2) U42_A(x1,x2) = ((0,0),(1,1)) x2 + (1,5) U43_A(x1) = (5,1) isNatIList_A(x1) = ((0,1),(1,1)) x1 + (1,1) U51_A(x1,x2,x3) = x2 + ((1,1),(0,0)) x3 + (5,6) U52_A(x1,x2) = ((1,1),(0,0)) x2 + (1,1) U53_A(x1) = x1 + (1,2) U61_A(x1,x2) = ((1,1),(1,1)) x2 + (7,6) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = (1,1) tt_A() = (0,13) mark#_A(x1) = (1,1) U22_A(x1) = (13,13) and_A(x1,x2) = ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,0)) x1 isNatIListKind_A(x1) = (13,0) a__isNatIListKind#_A(x1) = (1,0) cons_A(x1,x2) = (1,1) a__isNatKind_A(x1) = (1,12) a__isNatKind#_A(x1) = (0,2) length_A(x1) = (8,10) s_A(x1) = (6,6) isNatKind_A(x1) = ((0,1),(0,1)) x1 + (12,13) a__zeros_A() = (2,1) |0|_A() = (10,1) zeros_A() = (3,3) a__U11_A(x1,x2) = (0,20) a__U12_A(x1) = (0,21) a__isNatList_A(x1) = ((1,1),(0,0)) x1 + (2,1) a__U21_A(x1,x2) = (14,13) a__U22_A(x1) = (13,13) a__isNat_A(x1) = ((0,0),(1,1)) x1 + (15,1) a__U31_A(x1,x2) = (2,2) a__U32_A(x1) = (13,13) a__U41_A(x1,x2,x3) = (0,14) a__U42_A(x1,x2) = (1,3) a__U43_A(x1) = (6,4) a__isNatIList_A(x1) = (15,13) a__U51_A(x1,x2,x3) = ((0,0),(1,0)) x2 + ((1,1),(1,0)) x3 + (2,1) a__U52_A(x1,x2) = x2 + (3,5) a__U53_A(x1) = (7,6) a__U61_A(x1,x2) = (7,8) a__length_A(x1) = (9,8) a__and_A(x1,x2) = ((1,1),(1,1)) x2 a__isNatIListKind_A(x1) = (0,13) nil_A() = (1,2) isNat_A(x1) = ((1,1),(0,0)) x1 + (1,16) U11_A(x1,x2) = (1,21) U12_A(x1) = (1,0) isNatList_A(x1) = ((0,1),(0,1)) x1 + (1,3) U21_A(x1,x2) = x2 + (15,15) U31_A(x1,x2) = (1,3) U32_A(x1) = (13,13) U41_A(x1,x2,x3) = (1,15) U42_A(x1,x2) = (2,4) U43_A(x1) = (1,5) isNatIList_A(x1) = (16,14) U51_A(x1,x2,x3) = ((0,0),(1,0)) x3 + (1,1) U52_A(x1,x2) = ((1,0),(1,0)) x2 + (4,1) U53_A(x1) = x1 + (6,1) U61_A(x1,x2) = (7,8) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = (2,2) tt_A() = (0,3) mark#_A(x1) = (2,2) U22_A(x1) = (0,1) and_A(x1,x2) = (1,1) mark_A(x1) = (5,3) isNatIListKind_A(x1) = (1,4) a__isNatIListKind#_A(x1) = (1,1) cons_A(x1,x2) = (4,3) a__isNatKind_A(x1) = (1,4) a__isNatKind#_A(x1) = (0,0) length_A(x1) = (1,0) s_A(x1) = (1,1) isNatKind_A(x1) = (0,0) a__zeros_A() = (6,0) |0|_A() = (0,0) zeros_A() = (1,1) a__U11_A(x1,x2) = (6,0) a__U12_A(x1) = (7,2) a__isNatList_A(x1) = ((0,1),(0,1)) x1 + (0,1) a__U21_A(x1,x2) = (6,1) a__U22_A(x1) = (1,3) a__isNat_A(x1) = (4,0) a__U31_A(x1,x2) = (3,5) a__U32_A(x1) = (2,2) a__U41_A(x1,x2,x3) = (6,4) a__U42_A(x1,x2) = (7,5) a__U43_A(x1) = (2,2) a__isNatIList_A(x1) = (4,4) a__U51_A(x1,x2,x3) = (0,4) a__U52_A(x1,x2) = x2 + (6,5) a__U53_A(x1) = (7,2) a__U61_A(x1,x2) = (2,1) a__length_A(x1) = (3,1) a__and_A(x1,x2) = (5,3) a__isNatIListKind_A(x1) = (0,3) nil_A() = (1,1) isNat_A(x1) = (1,1) U11_A(x1,x2) = (1,1) U12_A(x1) = (1,3) isNatList_A(x1) = (1,2) U21_A(x1,x2) = ((0,1),(1,0)) x2 + (7,2) U31_A(x1,x2) = (4,6) U32_A(x1) = (1,2) U41_A(x1,x2,x3) = (1,1) U42_A(x1,x2) = (1,6) U43_A(x1) = (1,1) isNatIList_A(x1) = (5,5) U51_A(x1,x2,x3) = (1,5) U52_A(x1,x2) = ((0,0),(1,0)) x2 + (7,6) U53_A(x1) = (1,1) U61_A(x1,x2) = (1,1) The next rules are strictly ordered: p5, p6, p7, p8, p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__and#(tt(),X) -> mark#(X) p2: mark#(U22(X)) -> mark#(X) p3: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p4: mark#(and(X1,X2)) -> mark#(X1) p5: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p6: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p6} {p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__and#(tt(),X) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(and(X1,X2)) -> mark#(X1) p4: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p5: mark#(U22(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 tt_A() = (4,1) mark#_A(x1) = ((0,1),(0,1)) x1 s_A(x1) = x1 + (1,0) and_A(x1,x2) = x1 + x2 + (2,4) mark_A(x1) = x1 + (3,3) U22_A(x1) = x1 + (1,0) a__zeros_A() = (5,4) cons_A(x1,x2) = ((0,1),(0,0)) x1 + x2 + (3,1) |0|_A() = (1,0) zeros_A() = (2,1) a__U11_A(x1,x2) = x1 + (2,1) a__U12_A(x1) = (5,1) a__isNatList_A(x1) = (8,4) a__U21_A(x1,x2) = ((0,1),(0,0)) x1 + (4,1) a__U22_A(x1) = x1 + (4,0) a__isNat_A(x1) = ((1,1),(0,0)) x1 + (4,1) a__U31_A(x1,x2) = (6,1) a__U32_A(x1) = (5,1) a__U41_A(x1,x2,x3) = ((0,1),(0,1)) x3 + (7,2) a__U42_A(x1,x2) = ((0,1),(0,1)) x2 + (6,2) a__U43_A(x1) = x1 + (5,1) a__isNatIList_A(x1) = ((0,1),(0,1)) x1 + (7,1) a__U51_A(x1,x2,x3) = (7,4) a__U52_A(x1,x2) = x1 + (6,1) a__U53_A(x1) = (5,1) a__U61_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,0),(1,0)) x2 + (1,5) a__length_A(x1) = ((1,0),(1,0)) x1 + (17,2) a__and_A(x1,x2) = x1 + x2 + (4,4) length_A(x1) = ((1,0),(1,0)) x1 + (17,2) a__isNatIListKind_A(x1) = ((1,0),(1,0)) x1 + (2,3) a__isNatKind_A(x1) = ((0,1),(0,1)) x1 + (4,1) isNatIListKind_A(x1) = ((1,0),(1,0)) x1 + (0,1) nil_A() = (2,1) isNat_A(x1) = ((1,1),(0,0)) x1 + (2,1) isNatKind_A(x1) = ((0,1),(0,1)) x1 + (2,1) U11_A(x1,x2) = x1 + (2,1) U12_A(x1) = (2,1) isNatList_A(x1) = (6,1) U21_A(x1,x2) = ((0,1),(0,0)) x1 + (4,1) U31_A(x1,x2) = (4,1) U32_A(x1) = (3,1) U41_A(x1,x2,x3) = ((0,1),(0,1)) x3 + (5,1) U42_A(x1,x2) = ((0,1),(0,1)) x2 + (4,2) U43_A(x1) = x1 + (4,1) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (5,1) U51_A(x1,x2,x3) = (5,4) U52_A(x1,x2) = x1 + (4,1) U53_A(x1) = (2,1) U61_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,0),(1,0)) x2 + (1,5) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = (0,0) tt_A() = (5,4) mark#_A(x1) = (1,1) s_A(x1) = (8,0) and_A(x1,x2) = (1,10) mark_A(x1) = ((1,1),(0,0)) x1 + (0,10) U22_A(x1) = (1,5) a__zeros_A() = (5,1) cons_A(x1,x2) = (1,1) |0|_A() = (6,11) zeros_A() = (5,2) a__U11_A(x1,x2) = (7,9) a__U12_A(x1) = (6,10) a__isNatList_A(x1) = (5,0) a__U21_A(x1,x2) = (7,8) a__U22_A(x1) = (6,4) a__isNat_A(x1) = x1 + (0,8) a__U31_A(x1,x2) = (3,12) a__U32_A(x1) = (5,13) a__U41_A(x1,x2,x3) = (0,12) a__U42_A(x1,x2) = (7,13) a__U43_A(x1) = (6,14) a__isNatIList_A(x1) = (0,11) a__U51_A(x1,x2,x3) = (4,1) a__U52_A(x1,x2) = (3,2) a__U53_A(x1) = (5,10) a__U61_A(x1,x2) = (0,1) a__length_A(x1) = (0,10) a__and_A(x1,x2) = ((1,0),(1,0)) x2 + (0,9) length_A(x1) = (0,0) a__isNatIListKind_A(x1) = x1 + (0,12) a__isNatKind_A(x1) = (13,11) isNatIListKind_A(x1) = (4,13) nil_A() = (5,11) isNat_A(x1) = (0,9) isNatKind_A(x1) = (1,12) U11_A(x1,x2) = (1,9) U12_A(x1) = (0,7) isNatList_A(x1) = (0,6) U21_A(x1,x2) = (0,8) U31_A(x1,x2) = (1,1) U32_A(x1) = (3,1) U41_A(x1,x2,x3) = (1,1) U42_A(x1,x2) = (8,1) U43_A(x1) = (0,7) isNatIList_A(x1) = (1,1) U51_A(x1,x2,x3) = (5,1) U52_A(x1,x2) = (1,1) U53_A(x1) = (0,6) U61_A(x1,x2) = (0,1) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__and#_A(x1,x2) = (0,0) tt_A() = (12,4) mark#_A(x1) = (1,1) s_A(x1) = (3,1) and_A(x1,x2) = (3,1) mark_A(x1) = ((1,1),(0,0)) x1 + (1,4) U22_A(x1) = (5,1) a__zeros_A() = (0,3) cons_A(x1,x2) = (0,4) |0|_A() = (4,1) zeros_A() = (7,3) a__U11_A(x1,x2) = (12,5) a__U12_A(x1) = (4,0) a__isNatList_A(x1) = (12,0) a__U21_A(x1,x2) = (5,2) a__U22_A(x1) = (6,3) a__isNat_A(x1) = x1 + (9,1) a__U31_A(x1,x2) = (10,6) a__U32_A(x1) = (11,7) a__U41_A(x1,x2,x3) = (8,5) a__U42_A(x1,x2) = (14,6) a__U43_A(x1) = (13,4) a__isNatIList_A(x1) = (9,5) a__U51_A(x1,x2,x3) = (8,5) a__U52_A(x1,x2) = (9,5) a__U53_A(x1) = (10,4) a__U61_A(x1,x2) = (2,0) a__length_A(x1) = (3,0) a__and_A(x1,x2) = ((0,1),(0,0)) x2 + (2,0) length_A(x1) = (2,0) a__isNatIListKind_A(x1) = ((1,1),(0,1)) x1 + (3,6) a__isNatKind_A(x1) = (1,5) isNatIListKind_A(x1) = (1,0) nil_A() = (9,1) isNat_A(x1) = (1,2) isNatKind_A(x1) = (2,1) U11_A(x1,x2) = (1,1) U12_A(x1) = (1,1) isNatList_A(x1) = (0,12) U21_A(x1,x2) = (0,3) U31_A(x1,x2) = (0,1) U32_A(x1) = (1,1) U41_A(x1,x2,x3) = (0,6) U42_A(x1,x2) = (0,7) U43_A(x1) = (0,5) isNatIList_A(x1) = (0,1) U51_A(x1,x2,x3) = (1,6) U52_A(x1,x2) = (0,6) U53_A(x1) = (11,5) U61_A(x1,x2) = (0,0) The next rules are strictly ordered: p1, p3, p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(s(X)) -> mark#(X) p2: mark#(U22(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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#(s(X)) -> mark#(X) p2: mark#(U22(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((1,1),(1,1)) x1 s_A(x1) = ((1,1),(1,1)) x1 + (1,1) U22_A(x1) = ((1,1),(1,1)) x1 + (1,1) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((1,1),(1,1)) x1 s_A(x1) = ((1,1),(1,1)) x1 + (1,1) U22_A(x1) = ((1,1),(1,1)) x1 + (1,1) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((1,1),(1,1)) x1 s_A(x1) = ((1,1),(1,1)) x1 + (1,1) U22_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78 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__isNatKind#(s(V1)) -> a__isNatKind#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNatKind#_A(x1) = ((1,1),(1,1)) x1 s_A(x1) = ((1,1),(1,1)) x1 + (1,1) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNatKind#_A(x1) = x1 s_A(x1) = x1 + (1,1) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__isNatKind#_A(x1) = ((0,1),(1,1)) x1 s_A(x1) = ((0,1),(1,1)) x1 + (1,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__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) p2: a__U61#(tt(),L) -> a__length#(mark(L)) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) r3: a__U12(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) r7: a__U32(tt()) -> tt() r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) r10: a__U43(tt()) -> tt() r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) r13: a__U53(tt()) -> tt() r14: a__U61(tt(),L) -> s(a__length(mark(L))) r15: a__and(tt(),X) -> mark(X) r16: a__isNat(|0|()) -> tt() r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) r20: a__isNatIList(zeros()) -> tt() r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r22: a__isNatIListKind(nil()) -> tt() r23: a__isNatIListKind(zeros()) -> tt() r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) r25: a__isNatKind(|0|()) -> tt() r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) r27: a__isNatKind(s(V1)) -> a__isNatKind(V1) r28: a__isNatList(nil()) -> tt() r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) r30: a__length(nil()) -> |0|() r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) r32: mark(zeros()) -> a__zeros() r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) r34: mark(U12(X)) -> a__U12(mark(X)) r35: mark(isNatList(X)) -> a__isNatList(X) r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r37: mark(U22(X)) -> a__U22(mark(X)) r38: mark(isNat(X)) -> a__isNat(X) r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r40: mark(U32(X)) -> a__U32(mark(X)) r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) r43: mark(U43(X)) -> a__U43(mark(X)) r44: mark(isNatIList(X)) -> a__isNatIList(X) r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) r47: mark(U53(X)) -> a__U53(mark(X)) r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r49: mark(length(X)) -> a__length(mark(X)) r50: mark(and(X1,X2)) -> a__and(mark(X1),X2) r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X) r52: mark(isNatKind(X)) -> a__isNatKind(X) r53: mark(cons(X1,X2)) -> cons(mark(X1),X2) r54: mark(|0|()) -> |0|() r55: mark(tt()) -> tt() r56: mark(s(X)) -> s(mark(X)) r57: mark(nil()) -> nil() r58: a__zeros() -> zeros() r59: a__U11(X1,X2) -> U11(X1,X2) r60: a__U12(X) -> U12(X) r61: a__isNatList(X) -> isNatList(X) r62: a__U21(X1,X2) -> U21(X1,X2) r63: a__U22(X) -> U22(X) r64: a__isNat(X) -> isNat(X) r65: a__U31(X1,X2) -> U31(X1,X2) r66: a__U32(X) -> U32(X) r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r68: a__U42(X1,X2) -> U42(X1,X2) r69: a__U43(X) -> U43(X) r70: a__isNatIList(X) -> isNatIList(X) r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3) r72: a__U52(X1,X2) -> U52(X1,X2) r73: a__U53(X) -> U53(X) r74: a__U61(X1,X2) -> U61(X1,X2) r75: a__length(X) -> length(X) r76: a__and(X1,X2) -> and(X1,X2) r77: a__isNatIListKind(X) -> isNatIListKind(X) r78: a__isNatKind(X) -> isNatKind(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 Take the reduction pair: lexicographic combination of reduction pairs: 1. matrix interpretations: carrier: N^2 order: standard order interpretations: a__length#_A(x1) = ((0,1),(0,1)) x1 + (1,0) cons_A(x1,x2) = x1 + ((0,1),(1,1)) x2 + (7,0) a__U61#_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,1),(0,1)) x2 a__and_A(x1,x2) = ((0,1),(0,1)) x1 + x2 a__isNatList_A(x1) = ((0,1),(1,0)) x1 + (13,0) isNatIListKind_A(x1) = ((0,1),(0,0)) x1 and_A(x1,x2) = ((0,1),(0,1)) x1 + x2 isNat_A(x1) = ((1,1),(0,0)) x1 + (1,0) isNatKind_A(x1) = ((0,1),(0,0)) x1 + (0,1) tt_A() = (9,7) mark_A(x1) = x1 + (7,7) a__zeros_A() = (10,10) |0|_A() = (1,3) zeros_A() = (4,3) a__U11_A(x1,x2) = ((1,1),(0,0)) x2 + (15,7) a__U12_A(x1) = x1 + (1,7) a__U21_A(x1,x2) = x1 + (9,0) a__U22_A(x1) = (9,7) a__isNat_A(x1) = ((1,1),(0,0)) x1 + (6,7) a__U31_A(x1,x2) = ((0,0),(1,0)) x2 + (11,7) a__U32_A(x1) = (10,7) a__U41_A(x1,x2,x3) = ((0,0),(1,1)) x3 + (12,8) a__U42_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,0),(1,1)) x2 + (4,1) a__U43_A(x1) = x1 + (10,1) a__isNatIList_A(x1) = ((0,0),(1,1)) x1 + (13,7) a__U51_A(x1,x2,x3) = ((0,1),(0,1)) x3 + (12,7) a__U52_A(x1,x2) = (11,7) a__U53_A(x1) = (10,7) a__U61_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (8,0) s_A(x1) = x1 + (1,2) a__length_A(x1) = x1 + (10,0) length_A(x1) = x1 + (10,0) a__isNatIListKind_A(x1) = ((0,1),(0,0)) x1 + (7,7) a__isNatKind_A(x1) = ((0,1),(0,0)) x1 + (7,7) nil_A() = (7,3) U11_A(x1,x2) = ((1,1),(0,0)) x2 + (9,7) U12_A(x1) = x1 + (1,1) U21_A(x1,x2) = x1 + (9,0) U22_A(x1) = (3,7) U31_A(x1,x2) = ((0,0),(1,0)) x2 + (5,1) U32_A(x1) = (9,1) U41_A(x1,x2,x3) = ((0,0),(1,1)) x3 + (6,8) U42_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,0),(1,1)) x2 + (4,1) U43_A(x1) = x1 + (4,1) isNatIList_A(x1) = ((0,0),(1,1)) x1 + (6,1) U51_A(x1,x2,x3) = ((0,1),(0,1)) x3 + (6,7) U52_A(x1,x2) = (5,7) U53_A(x1) = (4,7) U61_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (1,0) isNatList_A(x1) = ((0,1),(1,0)) x1 + (12,0) 2. matrix interpretations: carrier: N^2 order: standard order interpretations: a__length#_A(x1) = (4,1) cons_A(x1,x2) = (1,1) a__U61#_A(x1,x2) = ((0,1),(0,0)) x1 a__and_A(x1,x2) = (5,3) a__isNatList_A(x1) = (1,4) isNatIListKind_A(x1) = (6,4) and_A(x1,x2) = (0,1) isNat_A(x1) = ((0,0),(1,0)) x1 + (6,0) isNatKind_A(x1) = (0,4) tt_A() = (0,6) mark_A(x1) = (5,3) a__zeros_A() = (1,4) |0|_A() = (1,0) zeros_A() = (1,5) a__U11_A(x1,x2) = ((0,1),(0,1)) x2 + (5,0) a__U12_A(x1) = ((0,1),(0,0)) x1 + (0,3) a__U21_A(x1,x2) = (6,6) a__U22_A(x1) = (5,6) a__isNat_A(x1) = ((1,1),(1,1)) x1 + (6,4) a__U31_A(x1,x2) = (6,0) a__U32_A(x1) = (1,4) a__U41_A(x1,x2,x3) = (2,0) a__U42_A(x1,x2) = (2,1) a__U43_A(x1) = (1,4) a__isNatIList_A(x1) = (5,0) a__U51_A(x1,x2,x3) = (6,5) a__U52_A(x1,x2) = (7,6) a__U53_A(x1) = (8,7) a__U61_A(x1,x2) = (3,2) s_A(x1) = (4,4) a__length_A(x1) = ((0,1),(0,0)) x1 + (2,1) length_A(x1) = (0,1) a__isNatIListKind_A(x1) = (5,3) a__isNatKind_A(x1) = (5,3) nil_A() = (5,4) U11_A(x1,x2) = x2 U12_A(x1) = (0,0) U21_A(x1,x2) = (0,0) U22_A(x1) = (0,0) U31_A(x1,x2) = (7,0) U32_A(x1) = (0,0) U41_A(x1,x2,x3) = (0,0) U42_A(x1,x2) = (0,1) U43_A(x1) = (1,0) isNatIList_A(x1) = (0,0) U51_A(x1,x2,x3) = (0,0) U52_A(x1,x2) = (0,0) U53_A(x1) = (0,0) U61_A(x1,x2) = (3,0) isNatList_A(x1) = (0,5) 3. matrix interpretations: carrier: N^2 order: standard order interpretations: a__length#_A(x1) = (0,0) cons_A(x1,x2) = (0,0) a__U61#_A(x1,x2) = (1,1) a__and_A(x1,x2) = (4,8) a__isNatList_A(x1) = (5,0) isNatIListKind_A(x1) = (1,1) and_A(x1,x2) = (0,1) isNat_A(x1) = (6,2) isNatKind_A(x1) = (5,1) tt_A() = (1,8) mark_A(x1) = (4,8) a__zeros_A() = (0,9) |0|_A() = (5,1) zeros_A() = (1,1) a__U11_A(x1,x2) = (3,1) a__U12_A(x1) = (4,8) a__U21_A(x1,x2) = (2,9) a__U22_A(x1) = (5,1) a__isNat_A(x1) = ((1,0),(1,1)) x1 + (5,1) a__U31_A(x1,x2) = (5,9) a__U32_A(x1) = (4,9) a__U41_A(x1,x2,x3) = (5,7) a__U42_A(x1,x2) = (4,8) a__U43_A(x1) = (2,7) a__isNatIList_A(x1) = (3,6) a__U51_A(x1,x2,x3) = (2,9) a__U52_A(x1,x2) = (3,10) a__U53_A(x1) = (5,11) a__U61_A(x1,x2) = (4,4) s_A(x1) = (4,4) a__length_A(x1) = (4,4) length_A(x1) = (4,1) a__isNatIListKind_A(x1) = (4,8) a__isNatKind_A(x1) = (4,8) nil_A() = (1,9) U11_A(x1,x2) = (0,1) U12_A(x1) = (1,0) U21_A(x1,x2) = (1,10) U22_A(x1) = (6,1) U31_A(x1,x2) = (1,1) U32_A(x1) = (1,1) U41_A(x1,x2,x3) = (1,8) U42_A(x1,x2) = (1,1) U43_A(x1) = (0,8) isNatIList_A(x1) = (0,0) U51_A(x1,x2,x3) = (1,1) U52_A(x1,x2) = (4,1) U53_A(x1) = (6,1) U61_A(x1,x2) = (1,0) isNatList_A(x1) = (0,1) The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains.