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. weighted path order base order: max/plus interpretations on natural numbers: a__U11#_A(x1,x2) = max{1042, x1 - 36, x2 + 682} tt_A = 213 a__isNatList#_A(x1) = x1 + 681 cons_A(x1,x2) = max{x1, x2 + 223} a__isNatKind#_A(x1) = max{159, x1 - 424} s_A(x1) = max{247, x1} length_A(x1) = max{1324, x1 + 1077} a__isNatIListKind#_A(x1) = x1 + 566 a__and#_A(x1,x2) = max{x1 - 4, x2 + 461} a__isNatKind_A(x1) = max{214, x1 - 883} isNatIListKind_A(x1) = x1 + 193 mark#_A(x1) = x1 + 460 isNatKind_A(x1) = max{214, x1 - 883} and_A(x1,x2) = max{157, x1, x2 + 156} mark_A(x1) = max{246, x1} a__length#_A(x1) = max{1079, x1 + 832} a__U51#_A(x1,x2,x3) = max{x1 - 52, x2 + 677, x3 + 903} a__and_A(x1,x2) = max{246, x1, x2 + 156} a__isNat#_A(x1) = max{160, x1 - 34} a__U21#_A(x1,x2) = max{0, x1 - 1, x2 - 34} a__isNatIListKind_A(x1) = max{195, x1 + 193} a__U52#_A(x1,x2) = max{x1 + 377, x2 + 901} a__isNat_A(x1) = x1 + 300 a__isNatList_A(x1) = x1 + 679 isNat_A(x1) = x1 + 300 a__U61#_A(x1,x2) = max{1079, x1 - 89, x2 + 833} U61_A(x1,x2) = max{1324, x1 + 620, x2 + 1078} U53_A(x1) = max{589, x1 + 221} U52_A(x1,x2) = max{x1 + 377, x2 + 901} U51_A(x1,x2,x3) = max{x1 + 461, x2 + 678, x3 + 902} isNatIList_A(x1) = max{1095, x1 + 1061} a__isNatIList#_A(x1) = x1 + 1033 a__U41#_A(x1,x2,x3) = max{x1 - 36, x2 + 762, x3 + 1256} a__U42#_A(x1,x2) = max{x1 - 1, x2 + 1255} a__U31#_A(x1,x2) = max{x1 + 16, x2 + 682} U43_A(x1) = max{406, x1 + 159} U42_A(x1,x2) = max{x1 + 461, x2 + 1255} U41_A(x1,x2,x3) = max{x1 + 884, x2 + 762, x3 + 1257} U32_A(x1) = x1 U31_A(x1,x2) = max{x1 + 16, x2 + 682} U22_A(x1) = max{247, x1} U21_A(x1,x2) = max{404, x1 + 157, x2 + 300} isNatList_A(x1) = x1 + 679 U12_A(x1) = max{264, x1 + 17} U11_A(x1,x2) = max{x1 + 885, x2 + 1132} a__zeros_A = 245 |0|_A = 244 zeros_A = 21 a__U11_A(x1,x2) = max{x1 + 885, x2 + 1132} a__U12_A(x1) = max{264, x1 + 17} a__U21_A(x1,x2) = max{404, x1 + 157, x2 + 300} a__U22_A(x1) = max{247, x1} a__U31_A(x1,x2) = max{x1 + 16, x2 + 682} a__U32_A(x1) = max{246, x1} a__U41_A(x1,x2,x3) = max{x1 + 884, x2 + 762, x3 + 1257} a__U42_A(x1,x2) = max{x1 + 461, x2 + 1255} a__U43_A(x1) = max{406, x1 + 159} a__isNatIList_A(x1) = max{1095, x1 + 1061} a__U51_A(x1,x2,x3) = max{x1 + 461, x2 + 678, x3 + 902} a__U52_A(x1,x2) = max{x1 + 377, x2 + 901} a__U53_A(x1) = max{589, x1 + 221} a__U61_A(x1,x2) = max{1324, x1 + 620, x2 + 1078} a__length_A(x1) = max{1324, x1 + 1077} nil_A = 247 precedence: a__isNatKind# > U12 = a__zeros = zeros = a__U12 > cons = isNatIListKind = and = mark = a__and = a__isNatIListKind = a__isNatList = isNatIList = U41 = a__U41 = a__isNatIList = a__U52 = a__U53 > a__U61 = a__length > a__isNatList# = a__length# = a__U61# > a__U51# > U61 > s = a__isNat# = a__U21# = U53 > U31 = a__U31 > a__isNatKind > a__U43 > U51 = isNatList = a__U51 > isNatKind > a__U11# = length = a__isNatIListKind# = a__and# = mark# = a__U52# = a__isNat = isNat = U11 = a__U11 = a__U21 > a__U31# > |0| = a__U32 > tt = U52 > a__isNatIList# = a__U41# > a__U42# = U43 = U42 = U32 = U22 = U21 = a__U22 = a__U42 = nil partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__isNatList#) = [1] pi(cons) = [2] pi(a__isNatKind#) = [] pi(s) = [] pi(length) = [1] pi(a__isNatIListKind#) = [1] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatIListKind) = [] pi(mark#) = [] pi(isNatKind) = [] pi(and) = [2] pi(mark) = [1] pi(a__length#) = [] pi(a__U51#) = [3] pi(a__and) = [2] pi(a__isNat#) = [] pi(a__U21#) = [] pi(a__isNatIListKind) = [1] pi(a__U52#) = [2] pi(a__isNat) = [1] pi(a__isNatList) = [1] pi(isNat) = [1] pi(a__U61#) = [] pi(U61) = [2] pi(U53) = [1] pi(U52) = [] pi(U51) = [1, 2, 3] pi(isNatIList) = [] pi(a__isNatIList#) = [1] pi(a__U41#) = [] pi(a__U42#) = [] pi(a__U31#) = [] pi(U43) = [1] pi(U42) = [] pi(U41) = [] pi(U32) = [] pi(U31) = [1] pi(U22) = [] pi(U21) = [1] pi(isNatList) = [1] pi(U12) = [] pi(U11) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [2] pi(a__U12) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [1] pi(a__U32) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__U43) = [] pi(a__isNatIList) = [1] pi(a__U51) = [1, 2, 3] pi(a__U52) = [] pi(a__U53) = [] pi(a__U61) = [] pi(a__length) = [1] pi(nil) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: a__U11#_A(x1,x2) = 112 tt_A = 984 a__isNatList#_A(x1) = 977 cons_A(x1,x2) = x2 + 398 a__isNatKind#_A(x1) = 991 s_A(x1) = 676 length_A(x1) = x1 + 563 a__isNatIListKind#_A(x1) = 1 a__and#_A(x1,x2) = 81 a__isNatKind_A(x1) = 1707 isNatIListKind_A(x1) = 677 mark#_A(x1) = 113 isNatKind_A(x1) = 1708 and_A(x1,x2) = max{116, x2 - 118} mark_A(x1) = max{993, x1 + 674} a__length#_A(x1) = 1872 a__U51#_A(x1,x2,x3) = x3 + 1670 a__and_A(x1,x2) = x2 + 1195 a__isNat#_A(x1) = 992 a__U21#_A(x1,x2) = 992 a__isNatIListKind_A(x1) = 1872 a__U52#_A(x1,x2) = 1669 a__isNat_A(x1) = x1 + 1314 a__isNatList_A(x1) = x1 + 1591 isNat_A(x1) = max{642, x1 + 640} a__U61#_A(x1,x2) = 1872 U61_A(x1,x2) = max{424, x2 + 109} U53_A(x1) = 1353 U52_A(x1,x2) = 995 U51_A(x1,x2,x3) = max{x1 + 994, x2 + 994, x3 + 994} isNatIList_A(x1) = 1 a__isNatIList#_A(x1) = 82 a__U41#_A(x1,x2,x3) = 81 a__U42#_A(x1,x2) = 113 a__U31#_A(x1,x2) = 995 U43_A(x1) = max{679, x1 + 1} U42_A(x1,x2) = 1665 U41_A(x1,x2,x3) = 0 U32_A(x1) = 112 U31_A(x1,x2) = max{990, x1 - 1196} U22_A(x1) = 112 U21_A(x1,x2) = max{987, x1 - 675} isNatList_A(x1) = x1 + 1591 U12_A(x1) = 984 U11_A(x1,x2) = 988 a__zeros_A = 114 |0|_A = 0 zeros_A = 113 a__U11_A(x1,x2) = x2 + 989 a__U12_A(x1) = 985 a__U21_A(x1,x2) = 986 a__U22_A(x1) = 983 a__U31_A(x1,x2) = max{1665, x1 - 1196} a__U32_A(x1) = 983 a__U41_A(x1,x2,x3) = 681 a__U42_A(x1,x2) = 1665 a__U43_A(x1) = 678 a__isNatIList_A(x1) = max{676, x1 + 283} a__U51_A(x1,x2,x3) = max{x1 + 995, x2 + 1670, x3 + 2344} a__U52_A(x1,x2) = 1669 a__U53_A(x1) = 2344 a__U61_A(x1,x2) = 782 a__length_A(x1) = 1081 nil_A = 994 precedence: mark > zeros = a__U12 = a__isNatIList > a__U31 > a__isNatKind = isNatKind = and = a__and = a__isNatIListKind > a__U22 > a__U61 > s > U51 = a__zeros = a__U51 = a__U52 > cons = a__U41 > U41 > a__isNat = U52 = U12 = |0| = a__U11 = a__U21 > U32 = a__U32 > isNatIList > a__U42 > a__U43 > a__U53 = nil > U43 > isNat = U11 > length = isNatIListKind = U53 > mark# = a__length# = a__U61# > a__U42# > a__isNatIList# > a__U52# = a__U31# = U22 > a__isNatList# = a__U51# = a__isNatList = a__U41# = isNatList > a__isNat# = a__U21# > a__isNatKind# > a__isNatIListKind# > tt > a__U11# > a__and# = U61 > U42 = U31 = U21 = a__length partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__isNatList#) = [] pi(cons) = [] pi(a__isNatKind#) = [] pi(s) = [] pi(length) = [] pi(a__isNatIListKind#) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatIListKind) = [] pi(mark#) = [] pi(isNatKind) = [] pi(and) = [] pi(mark) = [] pi(a__length#) = [] pi(a__U51#) = [] pi(a__and) = [] pi(a__isNat#) = [] pi(a__U21#) = [] pi(a__isNatIListKind) = [] pi(a__U52#) = [] pi(a__isNat) = [1] pi(a__isNatList) = [1] pi(isNat) = [] pi(a__U61#) = [] pi(U61) = [] pi(U53) = [] pi(U52) = [] pi(U51) = [] pi(isNatIList) = [] pi(a__isNatIList#) = [] pi(a__U41#) = [] pi(a__U42#) = [] pi(a__U31#) = [] pi(U43) = [] pi(U42) = [] pi(U41) = [] pi(U32) = [] pi(U31) = [] pi(U22) = [] pi(U21) = [] pi(isNatList) = [] pi(U12) = [] pi(U11) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U32) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__U43) = [] pi(a__isNatIList) = [] pi(a__U51) = [1] pi(a__U52) = [] pi(a__U53) = [] pi(a__U61) = [] pi(a__length) = [] pi(nil) = [] The next rules are strictly ordered: p1, p2, p5, p6, p7, p10, p11, p13, p15, p16, p17, p18, p20, p23, p24, p25, p32, p36, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p53, p56, p57, p60, p61, p64 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p2: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1) p3: mark#(s(X)) -> mark#(X) p4: mark#(cons(X1,X2)) -> mark#(X1) p5: mark#(and(X1,X2)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) p7: a__U51#(tt(),V1,V2) -> a__isNat#(V1) p8: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p9: a__U21#(tt(),V1) -> a__isNat#(V1) p10: a__U52#(tt(),V2) -> a__isNatList#(V2) p11: a__length#(cons(N,L)) -> a__and#(a__isNatList(L),isNatIListKind(L)) p12: a__length#(cons(N,L)) -> a__and#(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))) p13: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) p14: a__U61#(tt(),L) -> mark#(L) p15: mark#(U61(X1,X2)) -> mark#(X1) p16: a__U61#(tt(),L) -> a__length#(mark(L)) p17: mark#(U53(X)) -> mark#(X) p18: mark#(U52(X1,X2)) -> mark#(X1) p19: mark#(U51(X1,X2,X3)) -> mark#(X1) p20: mark#(U43(X)) -> mark#(X) p21: mark#(U42(X1,X2)) -> mark#(X1) p22: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2) p23: mark#(U41(X1,X2,X3)) -> mark#(X1) p24: mark#(U32(X)) -> mark#(X) p25: mark#(U31(X1,X2)) -> mark#(X1) p26: mark#(U22(X)) -> mark#(X) p27: mark#(U21(X1,X2)) -> mark#(X1) p28: mark#(U12(X)) -> mark#(X) p29: mark#(U11(X1,X2)) -> mark#(X1) 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} {p13, p16} {p3, p4, p5, p6, p15, p17, p18, p19, p20, p21, p23, p24, p25, p26, p27, p28, p29} {p8, p9} -- 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. weighted path order base order: max/plus interpretations on natural numbers: a__isNatKind#_A(x1) = max{4, x1 + 3} s_A(x1) = max{3, x1 + 2} precedence: a__isNatKind# = s partial status: pi(a__isNatKind#) = [1] pi(s) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: a__isNatKind#_A(x1) = max{1, x1 - 1} s_A(x1) = x1 precedence: a__isNatKind# = s partial status: pi(a__isNatKind#) = [] pi(s) = [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. weighted path order base order: max/plus interpretations on natural numbers: a__length#_A(x1) = max{65, x1 - 41} cons_A(x1,x2) = max{110, x2 + 67} a__U61#_A(x1,x2) = max{66, x1 - 40, x2 + 26} a__and_A(x1,x2) = max{x1, x2 + 33} a__isNatList_A(x1) = max{108, x1 - 3} isNatIListKind_A(x1) = 1 and_A(x1,x2) = max{x1, x2 + 25} isNat_A(x1) = 75 isNatKind_A(x1) = 43 tt_A = 115 mark_A(x1) = max{115, x1 + 32} a__zeros_A = 114 |0|_A = 0 zeros_A = 0 a__U11_A(x1,x2) = max{115, x1 - 7} a__U12_A(x1) = 115 a__U21_A(x1,x2) = max{83, x1} a__U22_A(x1) = 115 a__isNat_A(x1) = 115 a__U31_A(x1,x2) = x2 + 321 a__U32_A(x1) = max{119, x1 + 4} a__U41_A(x1,x2,x3) = max{x1 + 236, x3 + 387} a__U42_A(x1,x2) = max{386, x1 + 270} a__U43_A(x1) = 115 a__isNatIList_A(x1) = x1 + 321 a__U51_A(x1,x2,x3) = max{108, x3 + 63} a__U52_A(x1,x2) = max{92, x1 - 7, x2 + 62} a__U53_A(x1) = max{1, x1} a__U61_A(x1,x2) = 266 s_A(x1) = max{266, x1 - 50} a__length_A(x1) = 287 length_A(x1) = 286 a__isNatIListKind_A(x1) = 115 a__isNatKind_A(x1) = 115 nil_A = 119 U11_A(x1,x2) = max{109, x1 - 7} U12_A(x1) = 0 U21_A(x1,x2) = max{83, x1} U22_A(x1) = 114 U31_A(x1,x2) = x2 + 290 U32_A(x1) = max{119, x1 + 4} U41_A(x1,x2,x3) = max{x1 + 236, x3 + 355} U42_A(x1,x2) = max{386, x1 + 270} U43_A(x1) = 0 isNatIList_A(x1) = max{291, x1 + 290} U51_A(x1,x2,x3) = max{84, x3 + 63} U52_A(x1,x2) = max{x1 - 7, x2 + 61} U53_A(x1) = max{1, x1} U61_A(x1,x2) = 265 isNatList_A(x1) = max{77, x1 - 4} precedence: a__and = mark = a__isNatIListKind = a__isNatKind > a__isNat > a__length > length > a__isNatIList = isNatIList > a__isNatList > a__U61 > a__U41 > a__zeros = a__U51 = U51 > nil > isNat = a__U11 > a__U32 = U32 > U11 > and > a__U21 = a__U42 > a__U52 = a__U53 > isNatList > U43 > U31 > a__U22 > U22 > isNatKind > U41 > a__U12 = a__U31 > |0| > cons > a__length# > isNatIListKind > a__U43 > a__U61# > tt > U52 = U61 > s > U42 = U53 > U21 > zeros > U12 partial status: pi(a__length#) = [] pi(cons) = [] pi(a__U61#) = [] pi(a__and) = [] pi(a__isNatList) = [] pi(isNatIListKind) = [] pi(and) = [] pi(isNat) = [] pi(isNatKind) = [] pi(tt) = [] pi(mark) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__isNat) = [] pi(a__U31) = [] pi(a__U32) = [1] pi(a__U41) = [1] pi(a__U42) = [] pi(a__U43) = [] pi(a__isNatIList) = [1] pi(a__U51) = [3] pi(a__U52) = [2] pi(a__U53) = [] pi(a__U61) = [] pi(s) = [] pi(a__length) = [] pi(length) = [] pi(a__isNatIListKind) = [] pi(a__isNatKind) = [] pi(nil) = [] pi(U11) = [] pi(U12) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [] pi(isNatIList) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(isNatList) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: a__length#_A(x1) = 57 cons_A(x1,x2) = 31 a__U61#_A(x1,x2) = 24 a__and_A(x1,x2) = 57 a__isNatList_A(x1) = 60 isNatIListKind_A(x1) = 1 and_A(x1,x2) = 57 isNat_A(x1) = 30 isNatKind_A(x1) = 56 tt_A = 45 mark_A(x1) = 57 a__zeros_A = 32 |0|_A = 26 zeros_A = 166 a__U11_A(x1,x2) = 57 a__U12_A(x1) = 56 a__U21_A(x1,x2) = 63 a__U22_A(x1) = 56 a__isNat_A(x1) = 64 a__U31_A(x1,x2) = 57 a__U32_A(x1) = max{57, x1} a__U41_A(x1,x2,x3) = x1 + 130 a__U42_A(x1,x2) = 189 a__U43_A(x1) = 92 a__isNatIList_A(x1) = 188 a__U51_A(x1,x2,x3) = x3 + 136 a__U52_A(x1,x2) = x2 + 95 a__U53_A(x1) = 92 a__U61_A(x1,x2) = 26 s_A(x1) = 25 a__length_A(x1) = 27 length_A(x1) = 25 a__isNatIListKind_A(x1) = 57 a__isNatKind_A(x1) = 57 nil_A = 25 U11_A(x1,x2) = 57 U12_A(x1) = 22 U21_A(x1,x2) = 33 U22_A(x1) = 25 U31_A(x1,x2) = 57 U32_A(x1) = 0 U41_A(x1,x2,x3) = 59 U42_A(x1,x2) = 24 U43_A(x1) = 92 isNatIList_A(x1) = 1 U51_A(x1,x2,x3) = 24 U52_A(x1,x2) = 94 U53_A(x1) = 58 U61_A(x1,x2) = 58 isNatList_A(x1) = 97 precedence: isNatIListKind > a__length# = a__and = a__isNatList = mark = a__isNatIList = length = a__isNatIListKind = a__isNatKind > a__U61# > a__isNat > a__zeros = a__U41 > a__U53 = U53 > cons = and > a__U42 = a__U43 = U41 = U43 > U22 = isNatList > a__U22 > tt = |0| = zeros = a__U12 > a__U51 > a__U32 > a__length > a__U31 = U31 > a__U61 = U42 = U61 > isNat > isNatKind = a__U11 > a__U52 = U32 = isNatIList = U52 > a__U21 = s = nil = U11 = U12 = U21 > U51 partial status: pi(a__length#) = [] pi(cons) = [] pi(a__U61#) = [] pi(a__and) = [] pi(a__isNatList) = [] pi(isNatIListKind) = [] pi(and) = [] pi(isNat) = [] pi(isNatKind) = [] pi(tt) = [] pi(mark) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__isNat) = [] pi(a__U31) = [] pi(a__U32) = [1] pi(a__U41) = [] pi(a__U42) = [] pi(a__U43) = [] pi(a__isNatIList) = [] pi(a__U51) = [3] pi(a__U52) = [] pi(a__U53) = [] pi(a__U61) = [] pi(s) = [] pi(a__length) = [] pi(length) = [] pi(a__isNatIListKind) = [] pi(a__isNatKind) = [] pi(nil) = [] pi(U11) = [] pi(U12) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [] pi(U42) = [] pi(U43) = [] pi(isNatIList) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [] pi(isNatList) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),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 estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(s(X)) -> mark#(X) p2: mark#(U11(X1,X2)) -> mark#(X1) p3: mark#(U12(X)) -> mark#(X) p4: mark#(U21(X1,X2)) -> mark#(X1) p5: mark#(U22(X)) -> mark#(X) p6: mark#(U31(X1,X2)) -> mark#(X1) p7: mark#(U32(X)) -> mark#(X) p8: mark#(U41(X1,X2,X3)) -> mark#(X1) p9: mark#(U42(X1,X2)) -> mark#(X1) p10: mark#(U43(X)) -> mark#(X) p11: mark#(U51(X1,X2,X3)) -> mark#(X1) p12: mark#(U52(X1,X2)) -> mark#(X1) p13: mark#(U53(X)) -> mark#(X) p14: mark#(U61(X1,X2)) -> mark#(X1) p15: mark#(length(X)) -> mark#(X) p16: mark#(and(X1,X2)) -> mark#(X1) p17: mark#(cons(X1,X2)) -> mark#(X1) 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. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 2 s_A(x1) = x1 U11_A(x1,x2) = max{x1, x2} U12_A(x1) = x1 U21_A(x1,x2) = max{x1, x2} U22_A(x1) = x1 U31_A(x1,x2) = max{x1 + 1, x2 + 1} U32_A(x1) = x1 U41_A(x1,x2,x3) = max{x1, x3} U42_A(x1,x2) = max{x1, x2} U43_A(x1) = x1 U51_A(x1,x2,x3) = max{x1 + 1, x2 + 3, x3 + 3} U52_A(x1,x2) = max{x1, x2} U53_A(x1) = x1 U61_A(x1,x2) = max{x1, x2} length_A(x1) = x1 + 2 and_A(x1,x2) = max{x1, x2} cons_A(x1,x2) = max{x1, x2} precedence: mark# = s = U11 = U12 = U21 = U22 = U31 = U32 = U41 = U42 = U43 = U51 = U52 = U53 = U61 = length = and = cons partial status: pi(mark#) = [1] pi(s) = [1] pi(U11) = [1, 2] pi(U12) = [1] pi(U21) = [1, 2] pi(U22) = [1] pi(U31) = [1, 2] pi(U32) = [1] pi(U41) = [1, 3] pi(U42) = [1, 2] pi(U43) = [1] pi(U51) = [1, 3] pi(U52) = [1, 2] pi(U53) = [1] pi(U61) = [1, 2] pi(length) = [1] pi(and) = [1, 2] pi(cons) = [1, 2] 2. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} s_A(x1) = x1 U11_A(x1,x2) = max{x1 + 4, x2 + 4} U12_A(x1) = x1 U21_A(x1,x2) = max{x1, x2} U22_A(x1) = x1 U31_A(x1,x2) = max{x1, x2} U32_A(x1) = x1 + 2 U41_A(x1,x2,x3) = max{x1, x3} U42_A(x1,x2) = max{x1, x2} U43_A(x1) = x1 U51_A(x1,x2,x3) = max{x1, x3} U52_A(x1,x2) = max{x1, x2} U53_A(x1) = x1 U61_A(x1,x2) = max{x1, x2} length_A(x1) = x1 + 2 and_A(x1,x2) = max{x1, x2} cons_A(x1,x2) = max{1, x1, x2} precedence: mark# = s = U11 = U12 = U21 = U22 = U31 = U32 = U41 = U42 = U43 = U51 = U52 = U53 = U61 = length = and = cons partial status: pi(mark#) = [1] pi(s) = [1] pi(U11) = [1, 2] pi(U12) = [1] pi(U21) = [1, 2] pi(U22) = [1] pi(U31) = [1, 2] pi(U32) = [1] pi(U41) = [1, 3] pi(U42) = [1, 2] pi(U43) = [1] pi(U51) = [1, 3] pi(U52) = [1, 2] pi(U53) = [1] pi(U61) = [1, 2] pi(length) = [1] pi(and) = [1, 2] pi(cons) = [1, 2] The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17 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__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. weighted path order base order: max/plus interpretations on natural numbers: a__isNat#_A(x1) = max{3, x1} s_A(x1) = max{143, x1 + 4} a__U21#_A(x1,x2) = max{5, x1 - 1, x2 + 3} a__isNatKind_A(x1) = max{140, x1 - 16} tt_A = 140 a__zeros_A = 100 cons_A(x1,x2) = max{99, x1 - 1, x2 + 55} |0|_A = 99 zeros_A = 0 a__U11_A(x1,x2) = max{x1 + 111, x2 + 253} a__U12_A(x1) = max{112, x1 + 1} a__isNatList_A(x1) = max{29, x1 + 27} a__U21_A(x1,x2) = max{x1, x2 - 12} a__U22_A(x1) = 140 a__isNat_A(x1) = max{140, x1 - 15} a__U31_A(x1,x2) = max{220, x1 + 110, x2 + 30} a__U32_A(x1) = max{29, x1} a__U41_A(x1,x2,x3) = max{x2 + 284, x3 + 341} a__U42_A(x1,x2) = x2 + 318 a__U43_A(x1) = max{140, x1 + 31} a__isNatIList_A(x1) = x1 + 286 a__U51_A(x1,x2,x3) = max{112, x3 + 82} a__U52_A(x1,x2) = max{111, x2 + 28} a__U53_A(x1) = max{110, x1 + 1} a__U61_A(x1,x2) = max{414, x1 + 280, x2 + 323} a__length_A(x1) = max{415, x1 + 269} mark_A(x1) = max{140, x1 + 31} length_A(x1) = max{408, x1 + 269} a__isNatIListKind_A(x1) = max{140, x1 + 42} a__and_A(x1,x2) = max{x1, x2 + 32} isNatIListKind_A(x1) = max{66, x1 + 12} nil_A = 114 and_A(x1,x2) = max{32, x1, x2 + 2} isNat_A(x1) = max{99, x1 - 45} isNatKind_A(x1) = max{100, x1 - 46} U11_A(x1,x2) = max{253, x1 + 111, x2 + 252} U12_A(x1) = max{111, x1 + 1} isNatList_A(x1) = max{29, x1 - 1} U21_A(x1,x2) = max{x1, x2 - 43} U22_A(x1) = 112 U31_A(x1,x2) = max{220, x1 + 110, x2} U32_A(x1) = max{29, x1} U41_A(x1,x2,x3) = max{x2 + 283, x3 + 340} U42_A(x1,x2) = max{317, x2 + 288} U43_A(x1) = max{140, x1 + 31} isNatIList_A(x1) = max{286, x1 + 256} U51_A(x1,x2,x3) = max{112, x3 + 82} U52_A(x1,x2) = max{110, x2 + 27} U53_A(x1) = max{110, x1 + 1} U61_A(x1,x2) = max{390, x1 + 280, x2 + 323} precedence: isNat > a__isNatList = mark = a__isNatIListKind = a__and = nil = U22 > a__length > length = isNatList > a__U51 > a__U43 > a__isNatKind > a__isNat > a__U11 > a__U21 > isNatIListKind > U11 > zeros > a__U31 = a__U32 > U32 > a__zeros = a__isNatIList > a__U12 = U31 > a__U52 = isNatKind > a__U53 = and > U21 > |0| > a__isNat# > a__U22 > tt > U43 > a__U21# = U51 > U42 > isNatIList > a__U61 = U53 = U61 > s > U41 > a__U41 = U52 > cons = a__U42 = U12 partial status: pi(a__isNat#) = [1] pi(s) = [] pi(a__U21#) = [2] pi(a__isNatKind) = [] pi(tt) = [] pi(a__zeros) = [] pi(cons) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [2] pi(a__U12) = [1] pi(a__isNatList) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__isNat) = [] pi(a__U31) = [1] pi(a__U32) = [] pi(a__U41) = [2, 3] pi(a__U42) = [] pi(a__U43) = [] pi(a__isNatIList) = [] pi(a__U51) = [3] pi(a__U52) = [] pi(a__U53) = [] pi(a__U61) = [1] pi(a__length) = [] pi(mark) = [] pi(length) = [] pi(a__isNatIListKind) = [] pi(a__and) = [] pi(isNatIListKind) = [1] pi(nil) = [] pi(and) = [] pi(isNat) = [] pi(isNatKind) = [] pi(U11) = [1] pi(U12) = [1] pi(isNatList) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [2] pi(U42) = [] pi(U43) = [] pi(isNatIList) = [1] pi(U51) = [] pi(U52) = [2] pi(U53) = [] pi(U61) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: a__isNat#_A(x1) = 128 s_A(x1) = 126 a__U21#_A(x1,x2) = x2 + 129 a__isNatKind_A(x1) = 209 tt_A = 127 a__zeros_A = 173 cons_A(x1,x2) = 172 |0|_A = 303 zeros_A = 126 a__U11_A(x1,x2) = 234 a__U12_A(x1) = 174 a__isNatList_A(x1) = 241 a__U21_A(x1,x2) = 129 a__U22_A(x1) = 128 a__isNat_A(x1) = 235 a__U31_A(x1,x2) = 220 a__U32_A(x1) = 149 a__U41_A(x1,x2,x3) = max{x2 + 260, x3 + 260} a__U42_A(x1,x2) = 241 a__U43_A(x1) = 126 a__isNatIList_A(x1) = 257 a__U51_A(x1,x2,x3) = 241 a__U52_A(x1,x2) = 237 a__U53_A(x1) = 126 a__U61_A(x1,x2) = 242 a__length_A(x1) = 302 mark_A(x1) = 241 length_A(x1) = 230 a__isNatIListKind_A(x1) = 241 a__and_A(x1,x2) = 241 isNatIListKind_A(x1) = 11 nil_A = 242 and_A(x1,x2) = 170 isNat_A(x1) = 124 isNatKind_A(x1) = 126 U11_A(x1,x2) = max{233, x1 - 71} U12_A(x1) = 7 isNatList_A(x1) = 1 U21_A(x1,x2) = 56 U22_A(x1) = 129 U31_A(x1,x2) = 74 U32_A(x1) = 76 U41_A(x1,x2,x3) = x2 + 260 U42_A(x1,x2) = 166 U43_A(x1) = 1 isNatIList_A(x1) = x1 + 185 U51_A(x1,x2,x3) = 240 U52_A(x1,x2) = 236 U53_A(x1) = 1 U61_A(x1,x2) = 242 precedence: a__U32 = a__U41 > a__U12 > |0| = zeros = a__U61 > a__isNatKind > a__U43 = a__length > mark = a__isNatIListKind = a__and > a__isNat# = s = a__U21# = cons = a__isNatList = a__U22 = a__U31 = a__U52 > a__U53 > a__zeros > a__U11 > length > a__isNat > tt > U51 > U52 > a__U51 > a__U21 > a__U42 = isNatIListKind > a__isNatIList > U22 > and = isNat = isNatKind = U11 = U12 = isNatList = U21 = U31 = U32 = U41 = U42 = U43 = isNatIList = U53 = U61 > nil partial status: pi(a__isNat#) = [] pi(s) = [] pi(a__U21#) = [] pi(a__isNatKind) = [] pi(tt) = [] pi(a__zeros) = [] pi(cons) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNatList) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__isNat) = [] pi(a__U31) = [] pi(a__U32) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__U43) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U53) = [] pi(a__U61) = [] pi(a__length) = [] pi(mark) = [] pi(length) = [] pi(a__isNatIListKind) = [] pi(a__and) = [] pi(isNatIListKind) = [] pi(nil) = [] pi(and) = [] pi(isNat) = [] pi(isNatKind) = [] pi(U11) = [] pi(U12) = [] pi(isNatList) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(U32) = [] pi(U41) = [2] pi(U42) = [] pi(U43) = [] pi(isNatIList) = [] pi(U51) = [] pi(U52) = [] pi(U53) = [] pi(U61) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__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: (no SCCs)