23.97/24.54 YES 23.97/24.54 23.97/24.54 Problem 1: 23.97/24.54 23.97/24.54 (VAR L N V V1 V2 X) 23.97/24.54 (STRATEGY CONTEXTSENSITIVE 23.97/24.54 (U11 1) 23.97/24.54 (U12 1) 23.97/24.54 (U21 1) 23.97/24.54 (U22 1) 23.97/24.54 (U31 1) 23.97/24.54 (U32 1) 23.97/24.54 (U41 1) 23.97/24.54 (U42 1) 23.97/24.54 (U43 1) 23.97/24.54 (U51 1) 23.97/24.54 (U52 1) 23.97/24.54 (U53 1) 23.97/24.54 (U61 1) 23.97/24.54 (and 1) 23.97/24.54 (isNat) 23.97/24.54 (isNatIList) 23.97/24.54 (isNatIListKind) 23.97/24.54 (isNatKind) 23.97/24.54 (isNatList) 23.97/24.54 (length 1) 23.97/24.54 (zeros) 23.97/24.54 (0) 23.97/24.54 (cons 1) 23.97/24.54 (nil) 23.97/24.54 (s 1) 23.97/24.54 (tt) 23.97/24.54 ) 23.97/24.54 (RULES 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ) 23.97/24.54 23.97/24.54 Problem 1: 23.97/24.54 23.97/24.54 Dependency Pairs Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U11#(tt,V1) -> U12#(isNatList(V1)) 23.97/24.54 U11#(tt,V1) -> ISNATLIST(V1) 23.97/24.54 U21#(tt,V1) -> U22#(isNat(V1)) 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 U31#(tt,V) -> U32#(isNatList(V)) 23.97/24.54 U31#(tt,V) -> ISNATLIST(V) 23.97/24.54 U41#(tt,V1,V2) -> U42#(isNat(V1),V2) 23.97/24.54 U41#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U42#(tt,V2) -> U43#(isNatIList(V2)) 23.97/24.54 U42#(tt,V2) -> ISNATILIST(V2) 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U51#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U52#(tt,V2) -> U53#(isNatList(V2)) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 U61#(tt,L) -> LENGTH(L) 23.97/24.54 U61#(tt,L) -> L 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> U41#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATILIST(V) -> U31#(isNatIListKind(V),V) 23.97/24.54 ISNATILIST(V) -> ISNATILISTKIND(V) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 LENGTH(cons(N,L)) -> U61#(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 LENGTH(cons(N,L)) -> AND(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))) 23.97/24.54 LENGTH(cons(N,L)) -> AND(isNatList(L),isNatIListKind(L)) 23.97/24.54 LENGTH(cons(N,L)) -> ISNATLIST(L) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding Rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 zeros -> ZEROS 23.97/24.54 23.97/24.54 Problem 1: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U11#(tt,V1) -> U12#(isNatList(V1)) 23.97/24.54 U11#(tt,V1) -> ISNATLIST(V1) 23.97/24.54 U21#(tt,V1) -> U22#(isNat(V1)) 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 U31#(tt,V) -> U32#(isNatList(V)) 23.97/24.54 U31#(tt,V) -> ISNATLIST(V) 23.97/24.54 U41#(tt,V1,V2) -> U42#(isNat(V1),V2) 23.97/24.54 U41#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U42#(tt,V2) -> U43#(isNatIList(V2)) 23.97/24.54 U42#(tt,V2) -> ISNATILIST(V2) 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U51#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U52#(tt,V2) -> U53#(isNatList(V2)) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 U61#(tt,L) -> LENGTH(L) 23.97/24.54 U61#(tt,L) -> L 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> U41#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATILIST(V) -> U31#(isNatIListKind(V),V) 23.97/24.54 ISNATILIST(V) -> ISNATILISTKIND(V) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 LENGTH(cons(N,L)) -> U61#(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 LENGTH(cons(N,L)) -> AND(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))) 23.97/24.54 LENGTH(cons(N,L)) -> AND(isNatList(L),isNatIListKind(L)) 23.97/24.54 LENGTH(cons(N,L)) -> ISNATLIST(L) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 zeros -> ZEROS 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U11#(tt,V1) -> ISNATLIST(V1) 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U51#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U41#(tt,V1,V2) -> U42#(isNat(V1),V2) 23.97/24.54 U42#(tt,V2) -> ISNATILIST(V2) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> U41#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U61#(tt,L) -> LENGTH(L) 23.97/24.54 LENGTH(cons(N,L)) -> U61#(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 23.97/24.54 23.97/24.54 The problem is decomposed in 3 subproblems. 23.97/24.54 23.97/24.54 Problem 1.1: 23.97/24.54 23.97/24.54 Reduction Pairs Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U11#(tt,V1) -> ISNATLIST(V1) 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U51#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 -> Usable rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = 2.X1 + 2.X2 + 2 23.97/24.54 [U12](X) = X + 2 23.97/24.54 [U21](X1,X2) = 2.X2 + 2 23.97/24.54 [U22](X) = 2 23.97/24.54 [U51](X1,X2,X3) = X1 + X2 + X3 23.97/24.54 [U52](X1,X2) = 2 23.97/24.54 [U53](X) = 2 23.97/24.54 [U61](X1,X2) = 2.X2 + 2 23.97/24.54 [and](X1,X2) = X2 23.97/24.54 [isNat](X) = 2.X + 2 23.97/24.54 [isNatIListKind](X) = 2 23.97/24.54 [isNatKind](X) = 2.X + 2 23.97/24.54 [isNatList](X) = 2.X + 2 23.97/24.54 [length](X) = 2.X + 2 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X1 + 2.X2 23.97/24.54 [nil] = 2 23.97/24.54 [s](X) = X 23.97/24.54 [tt] = 2 23.97/24.54 [U11#](X1,X2) = 2.X1 + 2.X2 + 2 23.97/24.54 [U21#](X1,X2) = 2.X2 + 2 23.97/24.54 [U51#](X1,X2,X3) = X1 + 2.X2 + 2.X3 23.97/24.54 [U52#](X1,X2) = X1 + 2.X2 23.97/24.54 [AND](X1,X2) = X2 23.97/24.54 [ISNAT](X) = 2.X + 2 23.97/24.54 [ISNATILISTKIND](X) = 2 23.97/24.54 [ISNATKIND](X) = 2 23.97/24.54 [ISNATLIST](X) = X + 2 23.97/24.54 23.97/24.54 Problem 1.1: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U51#(tt,V1,V2) -> ISNAT(V1) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 23.97/24.54 23.97/24.54 The problem is decomposed in 2 subproblems. 23.97/24.54 23.97/24.54 Problem 1.1.1: 23.97/24.54 23.97/24.54 Reduction Pairs Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 -> Usable rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = X1 + 2 23.97/24.54 [U12](X) = 2 23.97/24.54 [U21](X1,X2) = X1 23.97/24.54 [U22](X) = 0 23.97/24.54 [U51](X1,X2,X3) = 2.X3 + 2 23.97/24.54 [U52](X1,X2) = 2.X2 + 2 23.97/24.54 [U53](X) = 1 23.97/24.54 [U61](X1,X2) = 2 23.97/24.54 [and](X1,X2) = X2 23.97/24.54 [isNat](X) = 2.X + 2 23.97/24.54 [isNatIListKind](X) = 2 23.97/24.54 [isNatKind](X) = 2.X + 2 23.97/24.54 [isNatList](X) = 2.X + 2 23.97/24.54 [length](X) = 2 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X2 23.97/24.54 [nil] = 1 23.97/24.54 [s](X) = X 23.97/24.54 [tt] = 0 23.97/24.54 [U21#](X1,X2) = 2.X2 + 2 23.97/24.54 [AND](X1,X2) = X2 23.97/24.54 [ISNAT](X) = 2.X + 2 23.97/24.54 [ISNATILISTKIND](X) = 2 23.97/24.54 [ISNATKIND](X) = 2 23.97/24.54 23.97/24.54 Problem 1.1.1: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 23.97/24.54 Problem 1.1.1: 23.97/24.54 23.97/24.54 Reduction Pairs Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNAT(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 -> Usable rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = X1 + 1 23.97/24.54 [U12](X) = 1 23.97/24.54 [U21](X1,X2) = 1 23.97/24.54 [U22](X) = X 23.97/24.54 [U51](X1,X2,X3) = 2.X1 + X2 + 2 23.97/24.54 [U52](X1,X2) = 2.X1 23.97/24.54 [U53](X) = 0 23.97/24.54 [U61](X1,X2) = 2 23.97/24.54 [and](X1,X2) = 2.X2 23.97/24.54 [isNat](X) = 1 23.97/24.54 [isNatIListKind](X) = 0 23.97/24.54 [isNatKind](X) = 2.X + 2 23.97/24.54 [isNatList](X) = 2.X + 2 23.97/24.54 [length](X) = 2 23.97/24.54 [zeros] = 2 23.97/24.54 [0] = 2 23.97/24.54 [cons](X1,X2) = X1 23.97/24.54 [nil] = 1 23.97/24.54 [s](X) = X 23.97/24.54 [tt] = 0 23.97/24.54 [U21#](X1,X2) = X2 + 2 23.97/24.54 [AND](X1,X2) = X2 23.97/24.54 [ISNAT](X) = X + 2 23.97/24.54 [ISNATILISTKIND](X) = 0 23.97/24.54 [ISNATKIND](X) = 0 23.97/24.54 23.97/24.54 Problem 1.1.1: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 and(isNat(N),isNatKind(N)) -> ISNAT(N) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 23.97/24.54 23.97/24.54 The problem is decomposed in 2 subproblems. 23.97/24.54 23.97/24.54 Problem 1.1.1.1: 23.97/24.54 23.97/24.54 SubNColl Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->Projection: 23.97/24.54 pi(U21#) = 2 23.97/24.54 pi(ISNAT) = 1 23.97/24.54 23.97/24.54 Problem 1.1.1.1: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U21#(tt,V1) -> ISNAT(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 There is no strongly connected component 23.97/24.54 23.97/24.54 The problem is finite. 23.97/24.54 23.97/24.54 Problem 1.1.1.2: 23.97/24.54 23.97/24.54 Reduction Pairs Processor: 23.97/24.54 -> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 -> Usable rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = X2 + 2 23.97/24.54 [U12](X) = 2 23.97/24.54 [U21](X1,X2) = X1 + 1 23.97/24.54 [U22](X) = 2 23.97/24.54 [U51](X1,X2,X3) = 2.X2 + 2.X3 + 2 23.97/24.54 [U52](X1,X2) = 2.X2 + 2 23.97/24.54 [U53](X) = X 23.97/24.54 [U61](X1,X2) = 2.X1 + 2.X2 23.97/24.54 [and](X1,X2) = X2 23.97/24.54 [isNat](X) = 2.X + 2 23.97/24.54 [isNatIListKind](X) = 2.X + 2 23.97/24.54 [isNatKind](X) = 2.X + 1 23.97/24.54 [isNatList](X) = 2.X + 2 23.97/24.54 [length](X) = 2.X + 2 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X1 + 2.X2 23.97/24.54 [nil] = 2 23.97/24.54 [s](X) = X 23.97/24.54 [tt] = 1 23.97/24.54 [AND](X1,X2) = X2 23.97/24.54 [ISNATILISTKIND](X) = 2.X + 2 23.97/24.54 [ISNATKIND](X) = 2.X + 1 23.97/24.54 23.97/24.54 Problem 1.1.1.2: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 23.97/24.54 23.97/24.54 The problem is decomposed in 2 subproblems. 23.97/24.54 23.97/24.54 Problem 1.1.1.2.1: 23.97/24.54 23.97/24.54 Reduction Pairs Processor: 23.97/24.54 -> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 and(isNat(N),isNatKind(N)) -> AND(isNat(N),isNatKind(N)) 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 -> Usable rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = X1 + 2 23.97/24.54 [U12](X) = 2 23.97/24.54 [U21](X1,X2) = 2.X2 + 2 23.97/24.54 [U22](X) = X 23.97/24.54 [U51](X1,X2,X3) = 2.X1 23.97/24.54 [U52](X1,X2) = 0 23.97/24.54 [U53](X) = 0 23.97/24.54 [U61](X1,X2) = 2 23.97/24.54 [and](X1,X2) = 2.X2 23.97/24.54 [isNat](X) = 2.X + 2 23.97/24.54 [isNatIListKind](X) = 0 23.97/24.54 [isNatKind](X) = 2 23.97/24.54 [isNatList](X) = 2 23.97/24.54 [length](X) = 2 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X1 23.97/24.54 [nil] = 0 23.97/24.54 [s](X) = X 23.97/24.54 [tt] = 0 23.97/24.54 [AND](X1,X2) = X2 23.97/24.54 [ISNATILISTKIND](X) = 0 23.97/24.54 23.97/24.54 Problem 1.1.1.2.1: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 ->->Cycle: 23.97/24.54 ->->-> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 ->->-> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 ->->-> Unhiding rules: 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 23.97/24.54 Problem 1.1.1.2.1: 23.97/24.54 23.97/24.54 Non-Replacing Projection Processor: 23.97/24.54 -> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 ISNATILISTKIND(cons(V1,V2)) -> AND(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 ->Projection: 23.97/24.54 pi(AND) = 2 23.97/24.54 pi(ISNATILISTKIND) = 1 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = 0 23.97/24.54 [U12](X) = 0 23.97/24.54 [U21](X1,X2) = 0 23.97/24.54 [U22](X) = 0 23.97/24.54 [U31](X1,X2) = 0 23.97/24.54 [U32](X) = 0 23.97/24.54 [U41](X1,X2,X3) = 0 23.97/24.54 [U42](X1,X2) = 0 23.97/24.54 [U43](X) = 0 23.97/24.54 [U51](X1,X2,X3) = 0 23.97/24.54 [U52](X1,X2) = 0 23.97/24.54 [U53](X) = 0 23.97/24.54 [U61](X1,X2) = 0 23.97/24.54 [and](X1,X2) = 0 23.97/24.54 [isNat](X) = 0 23.97/24.54 [isNatIList](X) = 0 23.97/24.54 [isNatIListKind](X) = 2.X 23.97/24.54 [isNatKind](X) = 0 23.97/24.54 [isNatList](X) = 0 23.97/24.54 [length](X) = 0 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X2 + 1 23.97/24.54 [nil] = 0 23.97/24.54 [s](X) = 0 23.97/24.54 [tt] = 0 23.97/24.54 [U11#](X1,X2) = 0 23.97/24.54 [U12#](X) = 0 23.97/24.54 [U21#](X1,X2) = 0 23.97/24.54 [U22#](X) = 0 23.97/24.54 [U31#](X1,X2) = 0 23.97/24.54 [U32#](X) = 0 23.97/24.54 [U41#](X1,X2,X3) = 0 23.97/24.54 [U42#](X1,X2) = 0 23.97/24.54 [U43#](X) = 0 23.97/24.54 [U51#](X1,X2,X3) = 0 23.97/24.54 [U52#](X1,X2) = 0 23.97/24.54 [U53#](X) = 0 23.97/24.54 [U61#](X1,X2) = 0 23.97/24.54 [AND](X1,X2) = 0 23.97/24.54 [ISNAT](X) = 0 23.97/24.54 [ISNATILIST](X) = 0 23.97/24.54 [ISNATILISTKIND](X) = 0 23.97/24.54 [ISNATKIND](X) = 0 23.97/24.54 [ISNATLIST](X) = 0 23.97/24.54 [LENGTH](X) = 0 23.97/24.54 [ZEROS] = 0 23.97/24.54 23.97/24.54 Problem 1.1.1.2.1: 23.97/24.54 23.97/24.54 Basic Processor: 23.97/24.54 -> Pairs: 23.97/24.54 AND(tt,X) -> X 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 isNatIListKind(L) -> ISNATILISTKIND(L) 23.97/24.54 isNatIListKind(V2) -> ISNATILISTKIND(V2) 23.97/24.54 -> Result: 23.97/24.54 All pairs P are from Px1 23.97/24.54 23.97/24.54 The problem is finite. 23.97/24.54 23.97/24.54 Problem 1.1.1.2.2: 23.97/24.54 23.97/24.54 SubNColl Processor: 23.97/24.54 -> Pairs: 23.97/24.54 ISNATKIND(s(V1)) -> ISNATKIND(V1) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->Projection: 23.97/24.54 pi(ISNATKIND) = 1 23.97/24.54 23.97/24.54 Problem 1.1.1.2.2: 23.97/24.54 23.97/24.54 Basic Processor: 23.97/24.54 -> Pairs: 23.97/24.54 Empty 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 -> Result: 23.97/24.54 Set P is empty 23.97/24.54 23.97/24.54 The problem is finite. 23.97/24.54 23.97/24.54 Problem 1.1.2: 23.97/24.54 23.97/24.54 Non-Replacing Projection Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 ISNATLIST(cons(V1,V2)) -> U51#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->Projection: 23.97/24.54 pi(U51#) = 3 23.97/24.54 pi(U52#) = 2 23.97/24.54 pi(ISNATLIST) = 1 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = 0 23.97/24.54 [U12](X) = 0 23.97/24.54 [U21](X1,X2) = 0 23.97/24.54 [U22](X) = 0 23.97/24.54 [U31](X1,X2) = 0 23.97/24.54 [U32](X) = 0 23.97/24.54 [U41](X1,X2,X3) = 0 23.97/24.54 [U42](X1,X2) = 0 23.97/24.54 [U43](X) = 0 23.97/24.54 [U51](X1,X2,X3) = 0 23.97/24.54 [U52](X1,X2) = 0 23.97/24.54 [U53](X) = 0 23.97/24.54 [U61](X1,X2) = 0 23.97/24.54 [and](X1,X2) = 0 23.97/24.54 [isNat](X) = 0 23.97/24.54 [isNatIList](X) = 0 23.97/24.54 [isNatIListKind](X) = 0 23.97/24.54 [isNatKind](X) = 0 23.97/24.54 [isNatList](X) = 0 23.97/24.54 [length](X) = 0 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X2 + 2 23.97/24.54 [nil] = 0 23.97/24.54 [s](X) = 0 23.97/24.54 [tt] = 0 23.97/24.54 [U11#](X1,X2) = 0 23.97/24.54 [U12#](X) = 0 23.97/24.54 [U21#](X1,X2) = 0 23.97/24.54 [U22#](X) = 0 23.97/24.54 [U31#](X1,X2) = 0 23.97/24.54 [U32#](X) = 0 23.97/24.54 [U41#](X1,X2,X3) = 0 23.97/24.54 [U42#](X1,X2) = 0 23.97/24.54 [U43#](X) = 0 23.97/24.54 [U51#](X1,X2,X3) = 0 23.97/24.54 [U52#](X1,X2) = 0 23.97/24.54 [U53#](X) = 0 23.97/24.54 [U61#](X1,X2) = 0 23.97/24.54 [AND](X1,X2) = 0 23.97/24.54 [ISNAT](X) = 0 23.97/24.54 [ISNATILIST](X) = 0 23.97/24.54 [ISNATILISTKIND](X) = 0 23.97/24.54 [ISNATKIND](X) = 0 23.97/24.54 [ISNATLIST](X) = 0 23.97/24.54 [LENGTH](X) = 0 23.97/24.54 [ZEROS] = 0 23.97/24.54 23.97/24.54 Problem 1.1.2: 23.97/24.54 23.97/24.54 SCC Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U51#(tt,V1,V2) -> U52#(isNat(V1),V2) 23.97/24.54 U52#(tt,V2) -> ISNATLIST(V2) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->Strongly Connected Components: 23.97/24.54 There is no strongly connected component 23.97/24.54 23.97/24.54 The problem is finite. 23.97/24.54 23.97/24.54 Problem 1.2: 23.97/24.54 23.97/24.54 Non-Replacing Projection Processor: 23.97/24.54 -> Pairs: 23.97/24.54 U41#(tt,V1,V2) -> U42#(isNat(V1),V2) 23.97/24.54 U42#(tt,V2) -> ISNATILIST(V2) 23.97/24.54 ISNATILIST(cons(V1,V2)) -> U41#(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 -> Rules: 23.97/24.54 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.54 U12(tt) -> tt 23.97/24.54 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.54 U22(tt) -> tt 23.97/24.54 U31(tt,V) -> U32(isNatList(V)) 23.97/24.54 U32(tt) -> tt 23.97/24.54 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.54 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.54 U43(tt) -> tt 23.97/24.54 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.54 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.54 U53(tt) -> tt 23.97/24.54 U61(tt,L) -> s(length(L)) 23.97/24.54 and(tt,X) -> X 23.97/24.54 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.54 isNat(0) -> tt 23.97/24.54 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.54 isNatIList(zeros) -> tt 23.97/24.54 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.54 isNatIListKind(zeros) -> tt 23.97/24.54 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.54 isNatIListKind(nil) -> tt 23.97/24.54 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.54 isNatKind(0) -> tt 23.97/24.54 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.54 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.54 isNatList(nil) -> tt 23.97/24.54 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.54 length(nil) -> 0 23.97/24.54 zeros -> cons(0,zeros) 23.97/24.54 -> Unhiding rules: 23.97/24.54 Empty 23.97/24.54 ->Projection: 23.97/24.54 pi(U41#) = 3 23.97/24.54 pi(U42#) = 2 23.97/24.54 pi(ISNATILIST) = 1 23.97/24.54 ->Interpretation type: 23.97/24.54 Linear 23.97/24.54 ->Coefficients: 23.97/24.54 Natural Numbers 23.97/24.54 ->Dimension: 23.97/24.54 1 23.97/24.54 ->Bound: 23.97/24.54 2 23.97/24.54 ->Interpretation: 23.97/24.54 23.97/24.54 [U11](X1,X2) = 0 23.97/24.54 [U12](X) = 0 23.97/24.54 [U21](X1,X2) = 0 23.97/24.54 [U22](X) = 0 23.97/24.54 [U31](X1,X2) = 0 23.97/24.54 [U32](X) = 0 23.97/24.54 [U41](X1,X2,X3) = 0 23.97/24.54 [U42](X1,X2) = 0 23.97/24.54 [U43](X) = 0 23.97/24.54 [U51](X1,X2,X3) = 0 23.97/24.54 [U52](X1,X2) = 0 23.97/24.54 [U53](X) = 0 23.97/24.54 [U61](X1,X2) = 0 23.97/24.54 [and](X1,X2) = 0 23.97/24.54 [isNat](X) = 0 23.97/24.54 [isNatIList](X) = 0 23.97/24.54 [isNatIListKind](X) = 0 23.97/24.54 [isNatKind](X) = 0 23.97/24.54 [isNatList](X) = 0 23.97/24.54 [length](X) = 0 23.97/24.54 [zeros] = 0 23.97/24.54 [0] = 0 23.97/24.54 [cons](X1,X2) = 2.X2 + 2 23.97/24.54 [nil] = 0 23.97/24.54 [s](X) = 0 23.97/24.54 [tt] = 0 23.97/24.54 [U11#](X1,X2) = 0 23.97/24.54 [U12#](X) = 0 23.97/24.55 [U21#](X1,X2) = 0 23.97/24.55 [U22#](X) = 0 23.97/24.55 [U31#](X1,X2) = 0 23.97/24.55 [U32#](X) = 0 23.97/24.55 [U41#](X1,X2,X3) = 0 23.97/24.55 [U42#](X1,X2) = 0 23.97/24.55 [U43#](X) = 0 23.97/24.55 [U51#](X1,X2,X3) = 0 23.97/24.55 [U52#](X1,X2) = 0 23.97/24.55 [U53#](X) = 0 23.97/24.55 [U61#](X1,X2) = 0 23.97/24.55 [AND](X1,X2) = 0 23.97/24.55 [ISNAT](X) = 0 23.97/24.55 [ISNATILIST](X) = 0 23.97/24.55 [ISNATILISTKIND](X) = 0 23.97/24.55 [ISNATKIND](X) = 0 23.97/24.55 [ISNATLIST](X) = 0 23.97/24.55 [LENGTH](X) = 0 23.97/24.55 [ZEROS] = 0 23.97/24.55 23.97/24.55 Problem 1.2: 23.97/24.55 23.97/24.55 SCC Processor: 23.97/24.55 -> Pairs: 23.97/24.55 U41#(tt,V1,V2) -> U42#(isNat(V1),V2) 23.97/24.55 U42#(tt,V2) -> ISNATILIST(V2) 23.97/24.55 -> Rules: 23.97/24.55 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.55 U12(tt) -> tt 23.97/24.55 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.55 U22(tt) -> tt 23.97/24.55 U31(tt,V) -> U32(isNatList(V)) 23.97/24.55 U32(tt) -> tt 23.97/24.55 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.55 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.55 U43(tt) -> tt 23.97/24.55 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.55 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.55 U53(tt) -> tt 23.97/24.55 U61(tt,L) -> s(length(L)) 23.97/24.55 and(tt,X) -> X 23.97/24.55 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.55 isNat(0) -> tt 23.97/24.55 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.55 isNatIList(zeros) -> tt 23.97/24.55 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.55 isNatIListKind(zeros) -> tt 23.97/24.55 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.55 isNatIListKind(nil) -> tt 23.97/24.55 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.55 isNatKind(0) -> tt 23.97/24.55 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.55 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatList(nil) -> tt 23.97/24.55 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.55 length(nil) -> 0 23.97/24.55 zeros -> cons(0,zeros) 23.97/24.55 -> Unhiding rules: 23.97/24.55 Empty 23.97/24.55 ->Strongly Connected Components: 23.97/24.55 There is no strongly connected component 23.97/24.55 23.97/24.55 The problem is finite. 23.97/24.55 23.97/24.55 Problem 1.3: 23.97/24.55 23.97/24.55 Reduction Pairs Processor: 23.97/24.55 -> Pairs: 23.97/24.55 U61#(tt,L) -> LENGTH(L) 23.97/24.55 LENGTH(cons(N,L)) -> U61#(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.55 -> Rules: 23.97/24.55 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.55 U12(tt) -> tt 23.97/24.55 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.55 U22(tt) -> tt 23.97/24.55 U31(tt,V) -> U32(isNatList(V)) 23.97/24.55 U32(tt) -> tt 23.97/24.55 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.55 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.55 U43(tt) -> tt 23.97/24.55 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.55 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.55 U53(tt) -> tt 23.97/24.55 U61(tt,L) -> s(length(L)) 23.97/24.55 and(tt,X) -> X 23.97/24.55 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.55 isNat(0) -> tt 23.97/24.55 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.55 isNatIList(zeros) -> tt 23.97/24.55 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.55 isNatIListKind(zeros) -> tt 23.97/24.55 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.55 isNatIListKind(nil) -> tt 23.97/24.55 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.55 isNatKind(0) -> tt 23.97/24.55 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.55 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatList(nil) -> tt 23.97/24.55 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.55 length(nil) -> 0 23.97/24.55 zeros -> cons(0,zeros) 23.97/24.55 -> Unhiding rules: 23.97/24.55 Empty 23.97/24.55 -> Usable rules: 23.97/24.55 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.55 U12(tt) -> tt 23.97/24.55 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.55 U22(tt) -> tt 23.97/24.55 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.55 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.55 U53(tt) -> tt 23.97/24.55 U61(tt,L) -> s(length(L)) 23.97/24.55 and(tt,X) -> X 23.97/24.55 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.55 isNat(0) -> tt 23.97/24.55 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.55 isNatIListKind(zeros) -> tt 23.97/24.55 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.55 isNatIListKind(nil) -> tt 23.97/24.55 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.55 isNatKind(0) -> tt 23.97/24.55 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.55 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatList(nil) -> tt 23.97/24.55 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.55 length(nil) -> 0 23.97/24.55 zeros -> cons(0,zeros) 23.97/24.55 ->Interpretation type: 23.97/24.55 Simple mixed 23.97/24.55 ->Coefficients: 23.97/24.55 Natural Numbers 23.97/24.55 ->Dimension: 23.97/24.55 1 23.97/24.55 ->Bound: 23.97/24.55 2 23.97/24.55 ->Interpretation: 23.97/24.55 23.97/24.55 [U11](X1,X2) = 2.X1.X2 + 2.X1 + 1 23.97/24.55 [U12](X) = 2 23.97/24.55 [U21](X1,X2) = X1 + 2 23.97/24.55 [U22](X) = 2 23.97/24.55 [U51](X1,X2,X3) = 2.X1.X2.X3 + 2.X1.X3 + X2.X3 + 2.X3 23.97/24.55 [U52](X1,X2) = 2.X1.X2 + 2.X2 23.97/24.55 [U53](X) = 2.X 23.97/24.55 [U61](X1,X2) = 2 23.97/24.55 [and](X1,X2) = X1.X2 23.97/24.55 [isNat](X) = X + 1 23.97/24.55 [isNatIListKind](X) = 1 23.97/24.55 [isNatKind](X) = 1 23.97/24.55 [isNatList](X) = 2.X 23.97/24.55 [length](X) = 2.X + 2 23.97/24.55 [zeros] = 0 23.97/24.55 [0] = 2 23.97/24.55 [cons](X1,X2) = 2.X1.X2 + 2.X2 23.97/24.55 [nil] = 2 23.97/24.55 [s](X) = 2 23.97/24.55 [tt] = 1 23.97/24.55 [U61#](X1,X2) = X1 + 2.X2 + 2 23.97/24.55 [LENGTH](X) = 2.X + 2 23.97/24.55 23.97/24.55 Problem 1.3: 23.97/24.55 23.97/24.55 SCC Processor: 23.97/24.55 -> Pairs: 23.97/24.55 LENGTH(cons(N,L)) -> U61#(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.55 -> Rules: 23.97/24.55 U11(tt,V1) -> U12(isNatList(V1)) 23.97/24.55 U12(tt) -> tt 23.97/24.55 U21(tt,V1) -> U22(isNat(V1)) 23.97/24.55 U22(tt) -> tt 23.97/24.55 U31(tt,V) -> U32(isNatList(V)) 23.97/24.55 U32(tt) -> tt 23.97/24.55 U41(tt,V1,V2) -> U42(isNat(V1),V2) 23.97/24.55 U42(tt,V2) -> U43(isNatIList(V2)) 23.97/24.55 U43(tt) -> tt 23.97/24.55 U51(tt,V1,V2) -> U52(isNat(V1),V2) 23.97/24.55 U52(tt,V2) -> U53(isNatList(V2)) 23.97/24.55 U53(tt) -> tt 23.97/24.55 U61(tt,L) -> s(length(L)) 23.97/24.55 and(tt,X) -> X 23.97/24.55 isNat(length(V1)) -> U11(isNatIListKind(V1),V1) 23.97/24.55 isNat(0) -> tt 23.97/24.55 isNat(s(V1)) -> U21(isNatKind(V1),V1) 23.97/24.55 isNatIList(zeros) -> tt 23.97/24.55 isNatIList(cons(V1,V2)) -> U41(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatIList(V) -> U31(isNatIListKind(V),V) 23.97/24.55 isNatIListKind(zeros) -> tt 23.97/24.55 isNatIListKind(cons(V1,V2)) -> and(isNatKind(V1),isNatIListKind(V2)) 23.97/24.55 isNatIListKind(nil) -> tt 23.97/24.55 isNatKind(length(V1)) -> isNatIListKind(V1) 23.97/24.55 isNatKind(0) -> tt 23.97/24.55 isNatKind(s(V1)) -> isNatKind(V1) 23.97/24.55 isNatList(cons(V1,V2)) -> U51(and(isNatKind(V1),isNatIListKind(V2)),V1,V2) 23.97/24.55 isNatList(nil) -> tt 23.97/24.55 length(cons(N,L)) -> U61(and(and(isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 23.97/24.55 length(nil) -> 0 23.97/24.55 zeros -> cons(0,zeros) 23.97/24.55 -> Unhiding rules: 23.97/24.55 Empty 23.97/24.55 ->Strongly Connected Components: 23.97/24.55 There is no strongly connected component 23.97/24.55 23.97/24.55 The problem is finite. 23.97/24.55 EOF