15.28/15.78 YES 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 (VAR v_NonEmpty:S L:S N:S V:S V1:S V2:S X:S X1:S X2:S X3:S) 15.28/15.78 (RULES 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 ) 15.28/15.78 (STRATEGY INNERMOST) 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 Dependency Pairs Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U11(tt,V1:S) -> A__U12(a__isNatList(V1:S)) 15.28/15.78 A__U11(tt,V1:S) -> A__ISNATLIST(V1:S) 15.28/15.78 A__U21(tt,V1:S) -> A__U22(a__isNat(V1:S)) 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__U32(a__isNatList(V:S)) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__U43(a__isNatIList(V2:S)) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__U53(a__isNatList(V2:S)) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> A__U11(mark(X1:S),X2:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> A__U12(mark(X:S)) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> A__U22(mark(X:S)) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> A__U32(mark(X:S)) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> A__U43(mark(X:S)) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> A__U53(mark(X:S)) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 MARK(zeros) -> A__ZEROS 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 SCC Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U11(tt,V1:S) -> A__U12(a__isNatList(V1:S)) 15.28/15.78 A__U11(tt,V1:S) -> A__ISNATLIST(V1:S) 15.28/15.78 A__U21(tt,V1:S) -> A__U22(a__isNat(V1:S)) 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__U32(a__isNatList(V:S)) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__U43(a__isNatIList(V2:S)) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__U53(a__isNatList(V2:S)) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> A__U11(mark(X1:S),X2:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> A__U12(mark(X:S)) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> A__U22(mark(X:S)) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> A__U32(mark(X:S)) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> A__U43(mark(X:S)) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> A__U53(mark(X:S)) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 MARK(zeros) -> A__ZEROS 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 ->Strongly Connected Components: 15.28/15.78 ->->Cycle: 15.28/15.78 ->->-> Pairs: 15.28/15.78 A__U11(tt,V1:S) -> A__ISNATLIST(V1:S) 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> A__U11(mark(X1:S),X2:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 ->->-> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 Reduction Pairs Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U11(tt,V1:S) -> A__ISNATLIST(V1:S) 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> A__U11(mark(X1:S),X2:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 -> Usable rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 ->Interpretation type: 15.28/15.78 Linear 15.28/15.78 ->Coefficients: 15.28/15.78 Natural Numbers 15.28/15.78 ->Dimension: 15.28/15.78 1 15.28/15.78 ->Bound: 15.28/15.78 2 15.28/15.78 ->Interpretation: 15.28/15.78 15.28/15.78 [a__U11](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [a__U12](X) = 2.X + 1 15.28/15.78 [a__U21](X1,X2) = 2.X1 + 2.X2 15.28/15.78 [a__U22](X) = X 15.28/15.78 [a__U31](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [a__U32](X) = 2.X + 2 15.28/15.78 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.28/15.78 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.28/15.78 [a__U43](X) = X 15.28/15.78 [a__U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 15.28/15.78 [a__U52](X1,X2) = X1 + 2.X2 15.28/15.78 [a__U53](X) = 2.X 15.28/15.78 [a__U61](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [a__and](X1,X2) = X1 + X2 15.28/15.78 [a__isNat](X) = 2.X 15.28/15.78 [a__isNatIList](X) = 2.X + 2 15.28/15.78 [a__isNatIListKind](X) = 0 15.28/15.78 [a__isNatKind](X) = 0 15.28/15.78 [a__isNatList](X) = X 15.28/15.78 [a__length](X) = 2.X + 2 15.28/15.78 [a__zeros] = 0 15.28/15.78 [mark](X) = X 15.28/15.78 [0] = 0 15.28/15.78 [U11](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [U12](X) = 2.X + 1 15.28/15.78 [U21](X1,X2) = 2.X1 + 2.X2 15.28/15.78 [U22](X) = X 15.28/15.78 [U31](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [U32](X) = 2.X + 2 15.28/15.78 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.28/15.78 [U42](X1,X2) = X1 + 2.X2 + 2 15.28/15.78 [U43](X) = X 15.28/15.78 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 15.28/15.78 [U52](X1,X2) = X1 + 2.X2 15.28/15.78 [U53](X) = 2.X 15.28/15.78 [U61](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [and](X1,X2) = X1 + X2 15.28/15.78 [cons](X1,X2) = 2.X1 + 2.X2 15.28/15.78 [fSNonEmpty] = 0 15.28/15.78 [isNat](X) = 2.X 15.28/15.78 [isNatIList](X) = 2.X + 2 15.28/15.78 [isNatIListKind](X) = 0 15.28/15.78 [isNatKind](X) = 0 15.28/15.78 [isNatList](X) = X 15.28/15.78 [length](X) = 2.X + 2 15.28/15.78 [nil] = 2 15.28/15.78 [s](X) = X 15.28/15.78 [tt] = 0 15.28/15.78 [zeros] = 0 15.28/15.78 [A__U11](X1,X2) = 2.X2 + 2 15.28/15.78 [A__U12](X) = 0 15.28/15.78 [A__U21](X1,X2) = 2.X1 + 2.X2 + 1 15.28/15.78 [A__U22](X) = 0 15.28/15.78 [A__U31](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.78 [A__U32](X) = 0 15.28/15.78 [A__U41](X1,X2,X3) = 2.X2 + 2.X3 + 2 15.28/15.78 [A__U42](X1,X2) = 2.X2 + 2 15.28/15.78 [A__U43](X) = 0 15.28/15.78 [A__U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 15.28/15.78 [A__U52](X1,X2) = X1 + 2.X2 + 1 15.28/15.78 [A__U53](X) = 0 15.28/15.78 [A__U61](X1,X2) = 2.X2 + 1 15.28/15.78 [A__AND](X1,X2) = X1 + 2.X2 + 1 15.28/15.78 [A__ISNAT](X) = 2.X + 1 15.28/15.78 [A__ISNATILIST](X) = 2.X + 2 15.28/15.78 [A__ISNATILISTKIND](X) = 1 15.28/15.78 [A__ISNATKIND](X) = 1 15.28/15.78 [A__ISNATLIST](X) = 2.X + 1 15.28/15.78 [A__LENGTH](X) = 2.X + 1 15.28/15.78 [A__ZEROS] = 0 15.28/15.78 [MARK](X) = 2.X + 1 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 SCC Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> A__U11(mark(X1:S),X2:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 ->Strongly Connected Components: 15.28/15.78 ->->Cycle: 15.28/15.78 ->->-> Pairs: 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 ->->-> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 Reduction Pairs Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U21(tt,V1:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 -> Usable rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 ->Interpretation type: 15.28/15.78 Linear 15.28/15.78 ->Coefficients: 15.28/15.78 Natural Numbers 15.28/15.78 ->Dimension: 15.28/15.78 1 15.28/15.78 ->Bound: 15.28/15.78 2 15.28/15.78 ->Interpretation: 15.28/15.78 15.28/15.78 [a__U11](X1,X2) = X1 + X2 15.28/15.78 [a__U12](X) = X + 2 15.28/15.78 [a__U21](X1,X2) = X1 + X2 + 2 15.28/15.78 [a__U22](X) = X + 2 15.28/15.78 [a__U31](X1,X2) = X1 + 2.X2 15.28/15.78 [a__U32](X) = X + 2 15.28/15.78 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.28/15.78 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.28/15.78 [a__U43](X) = X + 2 15.28/15.78 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 15.28/15.78 [a__U52](X1,X2) = X1 + 2.X2 15.28/15.78 [a__U53](X) = X + 2 15.28/15.78 [a__U61](X1,X2) = X1 + X2 + 2 15.28/15.78 [a__and](X1,X2) = X1 + X2 15.28/15.78 [a__isNat](X) = X + 2 15.28/15.78 [a__isNatIList](X) = 2.X + 2 15.28/15.78 [a__isNatIListKind](X) = 2 15.28/15.78 [a__isNatKind](X) = 2 15.28/15.78 [a__isNatList](X) = X 15.28/15.78 [a__length](X) = X 15.28/15.78 [a__zeros] = 2 15.28/15.78 [mark](X) = X + 2 15.28/15.78 [0] = 0 15.28/15.78 [U11](X1,X2) = X1 + X2 15.28/15.78 [U12](X) = X + 2 15.28/15.78 [U21](X1,X2) = X1 + X2 + 2 15.28/15.78 [U22](X) = X + 2 15.28/15.78 [U31](X1,X2) = X1 + 2.X2 15.28/15.78 [U32](X) = X + 2 15.28/15.78 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.28/15.78 [U42](X1,X2) = X1 + 2.X2 + 2 15.28/15.78 [U43](X) = X + 2 15.28/15.78 [U51](X1,X2,X3) = X1 + X2 + 2.X3 15.28/15.78 [U52](X1,X2) = X1 + 2.X2 15.28/15.78 [U53](X) = X + 2 15.28/15.78 [U61](X1,X2) = X1 + X2 + 2 15.28/15.78 [and](X1,X2) = X1 + X2 15.28/15.78 [cons](X1,X2) = X1 + 2.X2 + 2 15.28/15.78 [fSNonEmpty] = 0 15.28/15.78 [isNat](X) = X 15.28/15.78 [isNatIList](X) = 2.X + 1 15.28/15.78 [isNatIListKind](X) = 0 15.28/15.78 [isNatKind](X) = 0 15.28/15.78 [isNatList](X) = X 15.28/15.78 [length](X) = X 15.28/15.78 [nil] = 2 15.28/15.78 [s](X) = X + 2 15.28/15.78 [tt] = 2 15.28/15.78 [zeros] = 0 15.28/15.78 [A__U11](X1,X2) = 0 15.28/15.78 [A__U12](X) = 0 15.28/15.78 [A__U21](X1,X2) = X1 + X2 + 2 15.28/15.78 [A__U22](X) = 0 15.28/15.78 [A__U31](X1,X2) = X2 + 2 15.28/15.78 [A__U32](X) = 0 15.28/15.78 [A__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.28/15.78 [A__U42](X1,X2) = X1 + 2.X2 + 2 15.28/15.78 [A__U43](X) = 0 15.28/15.78 [A__U51](X1,X2,X3) = X2 + 2.X3 + 2 15.28/15.78 [A__U52](X1,X2) = X2 + 1 15.28/15.78 [A__U53](X) = 0 15.28/15.78 [A__U61](X1,X2) = X1 + X2 + 2 15.28/15.78 [A__AND](X1,X2) = X1 + X2 15.28/15.78 [A__ISNAT](X) = X + 2 15.28/15.78 [A__ISNATILIST](X) = 2.X + 2 15.28/15.78 [A__ISNATILISTKIND](X) = 2 15.28/15.78 [A__ISNATKIND](X) = 2 15.28/15.78 [A__ISNATLIST](X) = X + 1 15.28/15.78 [A__LENGTH](X) = X 15.28/15.78 [A__ZEROS] = 0 15.28/15.78 [MARK](X) = X + 2 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 SCC Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> A__U21(mark(X1:S),X2:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 ->Strongly Connected Components: 15.28/15.78 ->->Cycle: 15.28/15.78 ->->-> Pairs: 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 ->->-> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.78 mark(tt) -> tt 15.28/15.78 mark(zeros) -> a__zeros 15.28/15.78 15.28/15.78 Problem 1: 15.28/15.78 15.28/15.78 Reduction Pairs Processor: 15.28/15.78 -> Pairs: 15.28/15.78 A__U31(tt,V:S) -> A__ISNATLIST(V:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.78 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.78 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.78 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.78 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.78 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.78 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.78 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.78 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.78 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.78 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.78 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.78 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.78 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.78 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.78 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.78 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.78 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.78 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.78 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.78 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.78 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.78 MARK(length(X:S)) -> MARK(X:S) 15.28/15.78 MARK(s(X:S)) -> MARK(X:S) 15.28/15.78 -> Rules: 15.28/15.78 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.78 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.78 a__U12(tt) -> tt 15.28/15.78 a__U12(X:S) -> U12(X:S) 15.28/15.78 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.78 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.78 a__U22(tt) -> tt 15.28/15.78 a__U22(X:S) -> U22(X:S) 15.28/15.78 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.78 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.78 a__U32(tt) -> tt 15.28/15.78 a__U32(X:S) -> U32(X:S) 15.28/15.78 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.78 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.78 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.78 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.78 a__U43(tt) -> tt 15.28/15.78 a__U43(X:S) -> U43(X:S) 15.28/15.78 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.78 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.78 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.78 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.78 a__U53(tt) -> tt 15.28/15.78 a__U53(X:S) -> U53(X:S) 15.28/15.78 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.78 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.78 a__and(tt,X:S) -> mark(X:S) 15.28/15.78 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.78 a__isNat(0) -> tt 15.28/15.78 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.78 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.78 a__isNat(X:S) -> isNat(X:S) 15.28/15.78 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatIList(zeros) -> tt 15.28/15.78 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.78 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.78 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.78 a__isNatIListKind(nil) -> tt 15.28/15.78 a__isNatIListKind(zeros) -> tt 15.28/15.78 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.78 a__isNatKind(0) -> tt 15.28/15.78 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.78 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.78 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.78 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.78 a__isNatList(nil) -> tt 15.28/15.78 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.78 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.78 a__length(nil) -> 0 15.28/15.78 a__length(X:S) -> length(X:S) 15.28/15.78 a__zeros -> cons(0,zeros) 15.28/15.78 a__zeros -> zeros 15.28/15.78 mark(0) -> 0 15.28/15.78 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.78 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.78 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.78 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.78 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.78 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.78 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.78 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.78 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.78 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.78 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.78 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.78 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.78 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.78 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.78 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.78 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.78 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.78 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.78 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.78 mark(nil) -> nil 15.28/15.78 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 -> Usable rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 ->Interpretation type: 15.28/15.79 Linear 15.28/15.79 ->Coefficients: 15.28/15.79 Natural Numbers 15.28/15.79 ->Dimension: 15.28/15.79 1 15.28/15.79 ->Bound: 15.28/15.79 2 15.28/15.79 ->Interpretation: 15.28/15.79 15.28/15.79 [a__U11](X1,X2) = 2.X1 15.28/15.79 [a__U12](X) = 2.X 15.28/15.79 [a__U21](X1,X2) = 2.X1 15.28/15.79 [a__U22](X) = X 15.28/15.79 [a__U31](X1,X2) = 2.X1 + 1 15.28/15.79 [a__U32](X) = 2.X + 1 15.28/15.79 [a__U41](X1,X2,X3) = X1 + 1 15.28/15.79 [a__U42](X1,X2) = 2.X1 + 1 15.28/15.79 [a__U43](X) = X 15.28/15.79 [a__U51](X1,X2,X3) = X1 15.28/15.79 [a__U52](X1,X2) = 2.X1 15.28/15.79 [a__U53](X) = 2.X 15.28/15.79 [a__U61](X1,X2) = 2.X1 + 2.X2 15.28/15.79 [a__and](X1,X2) = 2.X1 + 2.X2 15.28/15.79 [a__isNat](X) = 0 15.28/15.79 [a__isNatIList](X) = 1 15.28/15.79 [a__isNatIListKind](X) = 0 15.28/15.79 [a__isNatKind](X) = 0 15.28/15.79 [a__isNatList](X) = 0 15.28/15.79 [a__length](X) = X 15.28/15.79 [a__zeros] = 0 15.28/15.79 [mark](X) = X 15.28/15.79 [0] = 0 15.28/15.79 [U11](X1,X2) = 2.X1 15.28/15.79 [U12](X) = 2.X 15.28/15.79 [U21](X1,X2) = 2.X1 15.28/15.79 [U22](X) = X 15.28/15.79 [U31](X1,X2) = 2.X1 + 1 15.28/15.79 [U32](X) = 2.X + 1 15.28/15.79 [U41](X1,X2,X3) = X1 + 1 15.28/15.79 [U42](X1,X2) = 2.X1 + 1 15.28/15.79 [U43](X) = X 15.28/15.79 [U51](X1,X2,X3) = X1 15.28/15.79 [U52](X1,X2) = 2.X1 15.28/15.79 [U53](X) = 2.X 15.28/15.79 [U61](X1,X2) = 2.X1 + 2.X2 15.28/15.79 [and](X1,X2) = 2.X1 + 2.X2 15.28/15.79 [cons](X1,X2) = 2.X1 + 2.X2 15.28/15.79 [fSNonEmpty] = 0 15.28/15.79 [isNat](X) = 0 15.28/15.79 [isNatIList](X) = 1 15.28/15.79 [isNatIListKind](X) = 0 15.28/15.79 [isNatKind](X) = 0 15.28/15.79 [isNatList](X) = 0 15.28/15.79 [length](X) = X 15.28/15.79 [nil] = 2 15.28/15.79 [s](X) = 2.X 15.28/15.79 [tt] = 0 15.28/15.79 [zeros] = 0 15.28/15.79 [A__U11](X1,X2) = 0 15.28/15.79 [A__U12](X) = 0 15.28/15.79 [A__U21](X1,X2) = 0 15.28/15.79 [A__U22](X) = 0 15.28/15.79 [A__U31](X1,X2) = 2.X1 + 2 15.28/15.79 [A__U32](X) = 0 15.28/15.79 [A__U41](X1,X2,X3) = 2.X1 + 2 15.28/15.79 [A__U42](X1,X2) = X1 + 2 15.28/15.79 [A__U43](X) = 0 15.28/15.79 [A__U51](X1,X2,X3) = 2.X1 + 1 15.28/15.79 [A__U52](X1,X2) = 2.X1 + 1 15.28/15.79 [A__U53](X) = 0 15.28/15.79 [A__U61](X1,X2) = 2.X1 + 2.X2 + 1 15.28/15.79 [A__AND](X1,X2) = 2.X1 + 2.X2 + 1 15.28/15.79 [A__ISNAT](X) = 1 15.28/15.79 [A__ISNATILIST](X) = 2 15.28/15.79 [A__ISNATILISTKIND](X) = 1 15.28/15.79 [A__ISNATKIND](X) = 1 15.28/15.79 [A__ISNATLIST](X) = 1 15.28/15.79 [A__LENGTH](X) = X + 1 15.28/15.79 [A__ZEROS] = 0 15.28/15.79 [MARK](X) = 2.X + 1 15.28/15.79 15.28/15.79 Problem 1: 15.28/15.79 15.28/15.79 SCC Processor: 15.28/15.79 -> Pairs: 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> A__U31(mark(X1:S),X2:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 -> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 ->Strongly Connected Components: 15.28/15.79 ->->Cycle: 15.28/15.79 ->->-> Pairs: 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 ->->-> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 15.28/15.79 Problem 1: 15.28/15.79 15.28/15.79 Reduction Pairs Processor: 15.28/15.79 -> Pairs: 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__U42(a__isNat(V1:S),V2:S) 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 -> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 -> Usable rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 ->Interpretation type: 15.28/15.79 Linear 15.28/15.79 ->Coefficients: 15.28/15.79 Natural Numbers 15.28/15.79 ->Dimension: 15.28/15.79 1 15.28/15.79 ->Bound: 15.28/15.79 2 15.28/15.79 ->Interpretation: 15.28/15.79 15.28/15.79 [a__U11](X1,X2) = X1 15.28/15.79 [a__U12](X) = X 15.28/15.79 [a__U21](X1,X2) = X1 15.28/15.79 [a__U22](X) = X 15.28/15.79 [a__U31](X1,X2) = X1 + 2.X2 15.28/15.79 [a__U32](X) = X 15.28/15.79 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.28/15.79 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.79 [a__U43](X) = X + 2 15.28/15.79 [a__U51](X1,X2,X3) = X1 15.28/15.79 [a__U52](X1,X2) = X1 15.28/15.79 [a__U53](X) = X 15.28/15.79 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.28/15.79 [a__and](X1,X2) = X1 + 2.X2 15.28/15.79 [a__isNat](X) = 2 15.28/15.79 [a__isNatIList](X) = 2.X + 2 15.28/15.79 [a__isNatIListKind](X) = 2 15.28/15.79 [a__isNatKind](X) = 2 15.28/15.79 [a__isNatList](X) = 2 15.28/15.79 [a__length](X) = X + 2 15.28/15.79 [a__zeros] = 2 15.28/15.79 [mark](X) = 2.X + 2 15.28/15.79 [0] = 0 15.28/15.79 [U11](X1,X2) = X1 15.28/15.79 [U12](X) = X 15.28/15.79 [U21](X1,X2) = X1 15.28/15.79 [U22](X) = X 15.28/15.79 [U31](X1,X2) = X1 + X2 15.28/15.79 [U32](X) = X 15.28/15.79 [U41](X1,X2,X3) = 2.X1 + 2.X2 + X3 + 2 15.28/15.79 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.79 [U43](X) = X + 1 15.28/15.79 [U51](X1,X2,X3) = X1 15.28/15.79 [U52](X1,X2) = X1 15.28/15.79 [U53](X) = X 15.28/15.79 [U61](X1,X2) = X1 + X2 + 2 15.28/15.79 [and](X1,X2) = X1 + 2.X2 15.28/15.79 [cons](X1,X2) = X1 + 2.X2 + 2 15.28/15.79 [fSNonEmpty] = 0 15.28/15.79 [isNat](X) = 0 15.28/15.79 [isNatIList](X) = X + 2 15.28/15.79 [isNatIListKind](X) = 0 15.28/15.79 [isNatKind](X) = 0 15.28/15.79 [isNatList](X) = 2 15.28/15.79 [length](X) = X + 2 15.28/15.79 [nil] = 2 15.28/15.79 [s](X) = X 15.28/15.79 [tt] = 2 15.28/15.79 [zeros] = 0 15.28/15.79 [A__U11](X1,X2) = 0 15.28/15.79 [A__U12](X) = 0 15.28/15.79 [A__U21](X1,X2) = 0 15.28/15.79 [A__U22](X) = 0 15.28/15.79 [A__U31](X1,X2) = 0 15.28/15.79 [A__U32](X) = 0 15.28/15.79 [A__U41](X1,X2,X3) = 2.X1 + X2 + 2.X3 15.28/15.79 [A__U42](X1,X2) = X1 + 2.X2 + 1 15.28/15.79 [A__U43](X) = 0 15.28/15.79 [A__U51](X1,X2,X3) = X1 15.28/15.79 [A__U52](X1,X2) = X1 15.28/15.79 [A__U53](X) = 0 15.28/15.79 [A__U61](X1,X2) = X1 + 2.X2 + 2 15.28/15.79 [A__AND](X1,X2) = X1 + 2.X2 15.28/15.79 [A__ISNAT](X) = 2 15.28/15.79 [A__ISNATILIST](X) = 2.X + 2 15.28/15.79 [A__ISNATILISTKIND](X) = 2 15.28/15.79 [A__ISNATKIND](X) = 2 15.28/15.79 [A__ISNATLIST](X) = 2 15.28/15.79 [A__LENGTH](X) = X + 2 15.28/15.79 [A__ZEROS] = 0 15.28/15.79 [MARK](X) = 2.X + 2 15.28/15.79 15.28/15.79 Problem 1: 15.28/15.79 15.28/15.79 SCC Processor: 15.28/15.79 -> Pairs: 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 -> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 ->Strongly Connected Components: 15.28/15.79 ->->Cycle: 15.28/15.79 ->->-> Pairs: 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 ->->-> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 15.28/15.79 Problem 1: 15.28/15.79 15.28/15.79 Reduction Pairs Processor: 15.28/15.79 -> Pairs: 15.28/15.79 A__U41(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 -> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 -> Usable rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 ->Interpretation type: 15.28/15.79 Linear 15.28/15.79 ->Coefficients: 15.28/15.79 Natural Numbers 15.28/15.79 ->Dimension: 15.28/15.79 1 15.28/15.79 ->Bound: 15.28/15.79 2 15.28/15.79 ->Interpretation: 15.28/15.79 15.28/15.79 [a__U11](X1,X2) = X1 15.28/15.79 [a__U12](X) = X 15.28/15.79 [a__U21](X1,X2) = X1 15.28/15.79 [a__U22](X) = X 15.28/15.79 [a__U31](X1,X2) = X1 + 2.X2 15.28/15.79 [a__U32](X) = X 15.28/15.79 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.28/15.79 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.79 [a__U43](X) = X + 2 15.28/15.79 [a__U51](X1,X2,X3) = X1 15.28/15.79 [a__U52](X1,X2) = X1 15.28/15.79 [a__U53](X) = X 15.28/15.79 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.28/15.79 [a__and](X1,X2) = X1 + 2.X2 15.28/15.79 [a__isNat](X) = 2 15.28/15.79 [a__isNatIList](X) = 2.X + 2 15.28/15.79 [a__isNatIListKind](X) = 2 15.28/15.79 [a__isNatKind](X) = 2 15.28/15.79 [a__isNatList](X) = 2 15.28/15.79 [a__length](X) = X + 2 15.28/15.79 [a__zeros] = 2 15.28/15.79 [mark](X) = 2.X + 2 15.28/15.79 [0] = 0 15.28/15.79 [U11](X1,X2) = X1 15.28/15.79 [U12](X) = X 15.28/15.79 [U21](X1,X2) = X1 15.28/15.79 [U22](X) = X 15.28/15.79 [U31](X1,X2) = X1 + X2 15.28/15.79 [U32](X) = X 15.28/15.79 [U41](X1,X2,X3) = 2.X1 + X2 + X3 + 2 15.28/15.79 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.79 [U43](X) = X + 2 15.28/15.79 [U51](X1,X2,X3) = X1 15.28/15.79 [U52](X1,X2) = X1 15.28/15.79 [U53](X) = X 15.28/15.79 [U61](X1,X2) = X1 + 2.X2 + 1 15.28/15.79 [and](X1,X2) = X1 + 2.X2 15.28/15.79 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.28/15.79 [fSNonEmpty] = 0 15.28/15.79 [isNat](X) = 0 15.28/15.79 [isNatIList](X) = X + 2 15.28/15.79 [isNatIListKind](X) = 0 15.28/15.79 [isNatKind](X) = 0 15.28/15.79 [isNatList](X) = 2 15.28/15.79 [length](X) = X + 1 15.28/15.79 [nil] = 0 15.28/15.79 [s](X) = X 15.28/15.79 [tt] = 2 15.28/15.79 [zeros] = 0 15.28/15.79 [A__U11](X1,X2) = 0 15.28/15.79 [A__U12](X) = 0 15.28/15.79 [A__U21](X1,X2) = 0 15.28/15.79 [A__U22](X) = 0 15.28/15.79 [A__U31](X1,X2) = 0 15.28/15.79 [A__U32](X) = 0 15.28/15.79 [A__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.28/15.79 [A__U42](X1,X2) = X1 + 2.X2 15.28/15.79 [A__U43](X) = 0 15.28/15.79 [A__U51](X1,X2,X3) = X1 15.28/15.79 [A__U52](X1,X2) = X1 15.28/15.79 [A__U53](X) = 0 15.28/15.79 [A__U61](X1,X2) = X1 + 2.X2 + 2 15.28/15.79 [A__AND](X1,X2) = X1 + 2.X2 15.28/15.79 [A__ISNAT](X) = 2 15.28/15.79 [A__ISNATILIST](X) = 2.X + 2 15.28/15.79 [A__ISNATILISTKIND](X) = 2 15.28/15.79 [A__ISNATKIND](X) = 2 15.28/15.79 [A__ISNATLIST](X) = 2 15.28/15.79 [A__LENGTH](X) = X + 2 15.28/15.79 [A__ZEROS] = 0 15.28/15.79 [MARK](X) = 2.X + 2 15.28/15.79 15.28/15.79 Problem 1: 15.28/15.79 15.28/15.79 SCC Processor: 15.28/15.79 -> Pairs: 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> A__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 -> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 ->Strongly Connected Components: 15.28/15.79 ->->Cycle: 15.28/15.79 ->->-> Pairs: 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 ->->-> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 15.28/15.79 Problem 1: 15.28/15.79 15.28/15.79 Reduction Pairs Processor: 15.28/15.79 -> Pairs: 15.28/15.79 A__U42(tt,V2:S) -> A__ISNATILIST(V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.28/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.28/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.28/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.28/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.28/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.28/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.28/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.28/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.28/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.28/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.28/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.28/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.28/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.28/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.28/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.28/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.28/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.28/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.28/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.28/15.79 MARK(length(X:S)) -> MARK(X:S) 15.28/15.79 MARK(s(X:S)) -> MARK(X:S) 15.28/15.79 -> Rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.28/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatIList(zeros) -> tt 15.28/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.28/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.28/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.28/15.79 a__isNatIListKind(nil) -> tt 15.28/15.79 a__isNatIListKind(zeros) -> tt 15.28/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.28/15.79 a__isNatKind(0) -> tt 15.28/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.28/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.28/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.28/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.28/15.79 a__isNatList(nil) -> tt 15.28/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.28/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.28/15.79 a__length(nil) -> 0 15.28/15.79 a__length(X:S) -> length(X:S) 15.28/15.79 a__zeros -> cons(0,zeros) 15.28/15.79 a__zeros -> zeros 15.28/15.79 mark(0) -> 0 15.28/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.28/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.28/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.28/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.28/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.28/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.28/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.28/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.28/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.28/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.28/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.28/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.28/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.28/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.28/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.28/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.28/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.28/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.28/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.28/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.28/15.79 mark(nil) -> nil 15.28/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.28/15.79 mark(tt) -> tt 15.28/15.79 mark(zeros) -> a__zeros 15.28/15.79 -> Usable rules: 15.28/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.28/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.28/15.79 a__U12(tt) -> tt 15.28/15.79 a__U12(X:S) -> U12(X:S) 15.28/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.28/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.28/15.79 a__U22(tt) -> tt 15.28/15.79 a__U22(X:S) -> U22(X:S) 15.28/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.28/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.28/15.79 a__U32(tt) -> tt 15.28/15.79 a__U32(X:S) -> U32(X:S) 15.28/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.28/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.28/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.28/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.28/15.79 a__U43(tt) -> tt 15.28/15.79 a__U43(X:S) -> U43(X:S) 15.28/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.28/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.28/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.28/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.28/15.79 a__U53(tt) -> tt 15.28/15.79 a__U53(X:S) -> U53(X:S) 15.28/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.28/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.28/15.79 a__and(tt,X:S) -> mark(X:S) 15.28/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.28/15.79 a__isNat(0) -> tt 15.28/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.28/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.28/15.79 a__isNat(X:S) -> isNat(X:S) 15.30/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.79 a__isNatIList(zeros) -> tt 15.30/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 a__isNatIListKind(nil) -> tt 15.30/15.79 a__isNatIListKind(zeros) -> tt 15.30/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.79 a__isNatKind(0) -> tt 15.30/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.79 a__isNatList(nil) -> tt 15.30/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.79 a__length(nil) -> 0 15.30/15.79 a__length(X:S) -> length(X:S) 15.30/15.79 a__zeros -> cons(0,zeros) 15.30/15.79 a__zeros -> zeros 15.30/15.79 mark(0) -> 0 15.30/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.79 mark(nil) -> nil 15.30/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.79 mark(tt) -> tt 15.30/15.79 mark(zeros) -> a__zeros 15.30/15.79 ->Interpretation type: 15.30/15.79 Linear 15.30/15.79 ->Coefficients: 15.30/15.79 Natural Numbers 15.30/15.79 ->Dimension: 15.30/15.79 1 15.30/15.79 ->Bound: 15.30/15.79 2 15.30/15.79 ->Interpretation: 15.30/15.79 15.30/15.79 [a__U11](X1,X2) = X1 15.30/15.79 [a__U12](X) = X 15.30/15.79 [a__U21](X1,X2) = X1 15.30/15.79 [a__U22](X) = X 15.30/15.79 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.79 [a__U32](X) = X 15.30/15.79 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.30/15.79 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.79 [a__U43](X) = X 15.30/15.79 [a__U51](X1,X2,X3) = X1 15.30/15.79 [a__U52](X1,X2) = X1 15.30/15.79 [a__U53](X) = X 15.30/15.79 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.79 [a__and](X1,X2) = X1 + 2.X2 15.30/15.79 [a__isNat](X) = 2 15.30/15.79 [a__isNatIList](X) = 2.X + 2 15.30/15.79 [a__isNatIListKind](X) = 2 15.30/15.79 [a__isNatKind](X) = 2 15.30/15.79 [a__isNatList](X) = 2 15.30/15.79 [a__length](X) = X + 2 15.30/15.79 [a__zeros] = 2 15.30/15.79 [mark](X) = 2.X + 2 15.30/15.79 [0] = 0 15.30/15.79 [U11](X1,X2) = X1 15.30/15.79 [U12](X) = X 15.30/15.79 [U21](X1,X2) = X1 15.30/15.79 [U22](X) = X 15.30/15.79 [U31](X1,X2) = X1 + 2.X2 15.30/15.79 [U32](X) = X 15.30/15.79 [U41](X1,X2,X3) = 2.X1 + X2 + 2.X3 + 2 15.30/15.79 [U42](X1,X2) = 2.X1 + X2 + 2 15.30/15.79 [U43](X) = X 15.30/15.79 [U51](X1,X2,X3) = X1 15.30/15.79 [U52](X1,X2) = X1 15.30/15.79 [U53](X) = X 15.30/15.79 [U61](X1,X2) = X1 + X2 + 1 15.30/15.79 [and](X1,X2) = X1 + 2.X2 15.30/15.79 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.79 [fSNonEmpty] = 0 15.30/15.79 [isNat](X) = 0 15.30/15.79 [isNatIList](X) = 2.X + 2 15.30/15.79 [isNatIListKind](X) = 0 15.30/15.79 [isNatKind](X) = 0 15.30/15.79 [isNatList](X) = 2 15.30/15.79 [length](X) = X + 2 15.30/15.79 [nil] = 1 15.30/15.79 [s](X) = X 15.30/15.79 [tt] = 2 15.30/15.79 [zeros] = 0 15.30/15.79 [A__U11](X1,X2) = 0 15.30/15.79 [A__U12](X) = 0 15.30/15.79 [A__U21](X1,X2) = 0 15.30/15.79 [A__U22](X) = 0 15.30/15.79 [A__U31](X1,X2) = 0 15.30/15.79 [A__U32](X) = 0 15.30/15.79 [A__U41](X1,X2,X3) = 0 15.30/15.79 [A__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.79 [A__U43](X) = 0 15.30/15.79 [A__U51](X1,X2,X3) = 2 15.30/15.79 [A__U52](X1,X2) = 2 15.30/15.79 [A__U53](X) = 0 15.30/15.79 [A__U61](X1,X2) = X1 + 2.X2 15.30/15.79 [A__AND](X1,X2) = 2.X2 + 2 15.30/15.79 [A__ISNAT](X) = 2 15.30/15.79 [A__ISNATILIST](X) = 2.X + 2 15.30/15.79 [A__ISNATILISTKIND](X) = 2 15.30/15.79 [A__ISNATKIND](X) = 2 15.30/15.79 [A__ISNATLIST](X) = 2 15.30/15.79 [A__LENGTH](X) = X 15.30/15.79 [A__ZEROS] = 0 15.30/15.79 [MARK](X) = 2.X + 2 15.30/15.79 15.30/15.79 Problem 1: 15.30/15.79 15.30/15.79 SCC Processor: 15.30/15.79 -> Pairs: 15.30/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.30/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.30/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.79 MARK(U42(X1:S,X2:S)) -> A__U42(mark(X1:S),X2:S) 15.30/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.79 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.79 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.79 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.79 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.79 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.79 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.79 MARK(length(X:S)) -> MARK(X:S) 15.30/15.79 MARK(s(X:S)) -> MARK(X:S) 15.30/15.79 -> Rules: 15.30/15.79 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.79 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.79 a__U12(tt) -> tt 15.30/15.79 a__U12(X:S) -> U12(X:S) 15.30/15.79 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.79 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.79 a__U22(tt) -> tt 15.30/15.79 a__U22(X:S) -> U22(X:S) 15.30/15.79 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.79 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.79 a__U32(tt) -> tt 15.30/15.79 a__U32(X:S) -> U32(X:S) 15.30/15.79 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.79 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.79 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.79 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.79 a__U43(tt) -> tt 15.30/15.79 a__U43(X:S) -> U43(X:S) 15.30/15.79 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.79 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.79 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.79 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.79 a__U53(tt) -> tt 15.30/15.79 a__U53(X:S) -> U53(X:S) 15.30/15.79 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.79 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.79 a__and(tt,X:S) -> mark(X:S) 15.30/15.79 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.79 a__isNat(0) -> tt 15.30/15.79 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.79 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.79 a__isNat(X:S) -> isNat(X:S) 15.30/15.79 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.79 a__isNatIList(zeros) -> tt 15.30/15.79 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.79 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.79 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 a__isNatIListKind(nil) -> tt 15.30/15.79 a__isNatIListKind(zeros) -> tt 15.30/15.79 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.79 a__isNatKind(0) -> tt 15.30/15.79 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.79 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.79 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.79 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.79 a__isNatList(nil) -> tt 15.30/15.79 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.79 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.79 a__length(nil) -> 0 15.30/15.79 a__length(X:S) -> length(X:S) 15.30/15.79 a__zeros -> cons(0,zeros) 15.30/15.79 a__zeros -> zeros 15.30/15.79 mark(0) -> 0 15.30/15.79 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.79 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.79 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.79 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.79 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.79 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.79 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.79 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.79 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.79 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.79 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.79 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.79 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.79 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.79 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.79 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.79 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.79 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.79 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.79 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.79 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.79 mark(nil) -> nil 15.30/15.79 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.79 mark(tt) -> tt 15.30/15.79 mark(zeros) -> a__zeros 15.30/15.79 ->Strongly Connected Components: 15.30/15.79 ->->Cycle: 15.30/15.79 ->->-> Pairs: 15.30/15.79 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.30/15.79 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.30/15.79 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.79 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.79 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.79 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.79 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.79 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.79 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.79 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.79 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.79 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.79 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.79 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.79 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.79 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.79 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.79 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.79 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 ->->-> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 Reduction Pairs Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U51(tt,V1:S,V2:S) -> A__U52(a__isNat(V1:S),V2:S) 15.30/15.80 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 -> Usable rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Interpretation type: 15.30/15.80 Linear 15.30/15.80 ->Coefficients: 15.30/15.80 Natural Numbers 15.30/15.80 ->Dimension: 15.30/15.80 1 15.30/15.80 ->Bound: 15.30/15.80 2 15.30/15.80 ->Interpretation: 15.30/15.80 15.30/15.80 [a__U11](X1,X2) = X1 + X2 + 1 15.30/15.80 [a__U12](X) = X + 2 15.30/15.80 [a__U21](X1,X2) = X1 + X2 15.30/15.80 [a__U22](X) = X 15.30/15.80 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.80 [a__U32](X) = X + 1 15.30/15.80 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.80 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [a__U43](X) = X + 2 15.30/15.80 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 15.30/15.80 [a__U52](X1,X2) = X1 + 2.X2 15.30/15.80 [a__U53](X) = X + 1 15.30/15.80 [a__U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__and](X1,X2) = X1 + X2 15.30/15.80 [a__isNat](X) = X + 2 15.30/15.80 [a__isNatIList](X) = 2.X + 2 15.30/15.80 [a__isNatIListKind](X) = 2 15.30/15.80 [a__isNatKind](X) = 2 15.30/15.80 [a__isNatList](X) = X + 1 15.30/15.80 [a__length](X) = X + 2 15.30/15.80 [a__zeros] = 2 15.30/15.80 [mark](X) = X + 2 15.30/15.80 [0] = 1 15.30/15.80 [U11](X1,X2) = X1 + X2 + 1 15.30/15.80 [U12](X) = X + 2 15.30/15.80 [U21](X1,X2) = X1 + X2 15.30/15.80 [U22](X) = X 15.30/15.80 [U31](X1,X2) = X1 + 2.X2 15.30/15.80 [U32](X) = X + 1 15.30/15.80 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.80 [U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [U43](X) = X + 2 15.30/15.80 [U51](X1,X2,X3) = X1 + X2 + 2.X3 15.30/15.80 [U52](X1,X2) = X1 + 2.X2 15.30/15.80 [U53](X) = X + 1 15.30/15.80 [U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [and](X1,X2) = X1 + X2 15.30/15.80 [cons](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [fSNonEmpty] = 0 15.30/15.80 [isNat](X) = X 15.30/15.80 [isNatIList](X) = 2.X + 2 15.30/15.80 [isNatIListKind](X) = 0 15.30/15.80 [isNatKind](X) = 0 15.30/15.80 [isNatList](X) = X + 1 15.30/15.80 [length](X) = X + 2 15.30/15.80 [nil] = 2 15.30/15.80 [s](X) = X 15.30/15.80 [tt] = 2 15.30/15.80 [zeros] = 0 15.30/15.80 [A__U11](X1,X2) = 0 15.30/15.80 [A__U12](X) = 0 15.30/15.80 [A__U21](X1,X2) = 0 15.30/15.80 [A__U22](X) = 0 15.30/15.80 [A__U31](X1,X2) = 0 15.30/15.80 [A__U32](X) = 0 15.30/15.80 [A__U41](X1,X2,X3) = 0 15.30/15.80 [A__U42](X1,X2) = 0 15.30/15.80 [A__U43](X) = 0 15.30/15.80 [A__U51](X1,X2,X3) = 2.X2 + 2.X3 + 2 15.30/15.80 [A__U52](X1,X2) = 2.X2 + 1 15.30/15.80 [A__U53](X) = 0 15.30/15.80 [A__U61](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.80 [A__AND](X1,X2) = 2.X2 + 2 15.30/15.80 [A__ISNAT](X) = 2.X + 2 15.30/15.80 [A__ISNATILIST](X) = 2.X + 2 15.30/15.80 [A__ISNATILISTKIND](X) = 2 15.30/15.80 [A__ISNATKIND](X) = 2 15.30/15.80 [A__ISNATLIST](X) = 2.X 15.30/15.80 [A__LENGTH](X) = 2.X + 2 15.30/15.80 [A__ZEROS] = 0 15.30/15.80 [MARK](X) = 2.X + 2 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 SCC Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Strongly Connected Components: 15.30/15.80 ->->Cycle: 15.30/15.80 ->->-> Pairs: 15.30/15.80 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 ->->-> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 Reduction Pairs Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U51(tt,V1:S,V2:S) -> A__ISNAT(V1:S) 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 -> Usable rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Interpretation type: 15.30/15.80 Linear 15.30/15.80 ->Coefficients: 15.30/15.80 Natural Numbers 15.30/15.80 ->Dimension: 15.30/15.80 1 15.30/15.80 ->Bound: 15.30/15.80 2 15.30/15.80 ->Interpretation: 15.30/15.80 15.30/15.80 [a__U11](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__U12](X) = X + 2 15.30/15.80 [a__U21](X1,X2) = X1 + X2 15.30/15.80 [a__U22](X) = X 15.30/15.80 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.80 [a__U32](X) = X 15.30/15.80 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 15.30/15.80 [a__U42](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [a__U43](X) = X 15.30/15.80 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.30/15.80 [a__U52](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [a__U53](X) = X + 2 15.30/15.80 [a__U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__and](X1,X2) = X1 + X2 15.30/15.80 [a__isNat](X) = X + 2 15.30/15.80 [a__isNatIList](X) = 2.X + 2 15.30/15.80 [a__isNatIListKind](X) = 2 15.30/15.80 [a__isNatKind](X) = 2 15.30/15.80 [a__isNatList](X) = X + 2 15.30/15.80 [a__length](X) = X + 2 15.30/15.80 [a__zeros] = 2 15.30/15.80 [mark](X) = X + 2 15.30/15.80 [0] = 0 15.30/15.80 [U11](X1,X2) = X1 + X2 + 2 15.30/15.80 [U12](X) = X + 2 15.30/15.80 [U21](X1,X2) = X1 + X2 15.30/15.80 [U22](X) = X 15.30/15.80 [U31](X1,X2) = X1 + 2.X2 15.30/15.80 [U32](X) = X 15.30/15.80 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 15.30/15.80 [U42](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [U43](X) = X 15.30/15.80 [U51](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.30/15.80 [U52](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [U53](X) = X + 2 15.30/15.80 [U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [and](X1,X2) = X1 + X2 15.30/15.80 [cons](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [fSNonEmpty] = 0 15.30/15.80 [isNat](X) = X 15.30/15.80 [isNatIList](X) = 2.X + 1 15.30/15.80 [isNatIListKind](X) = 0 15.30/15.80 [isNatKind](X) = 0 15.30/15.80 [isNatList](X) = X + 2 15.30/15.80 [length](X) = X + 2 15.30/15.80 [nil] = 2 15.30/15.80 [s](X) = X 15.30/15.80 [tt] = 2 15.30/15.80 [zeros] = 0 15.30/15.80 [A__U11](X1,X2) = 0 15.30/15.80 [A__U12](X) = 0 15.30/15.80 [A__U21](X1,X2) = 0 15.30/15.80 [A__U22](X) = 0 15.30/15.80 [A__U31](X1,X2) = 0 15.30/15.80 [A__U32](X) = 0 15.30/15.80 [A__U41](X1,X2,X3) = 0 15.30/15.80 [A__U42](X1,X2) = 0 15.30/15.80 [A__U43](X) = 0 15.30/15.80 [A__U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 15.30/15.80 [A__U52](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.80 [A__U53](X) = 0 15.30/15.80 [A__U61](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.80 [A__AND](X1,X2) = X1 + 2.X2 15.30/15.80 [A__ISNAT](X) = 2.X + 2 15.30/15.80 [A__ISNATILIST](X) = X + 2 15.30/15.80 [A__ISNATILISTKIND](X) = 2 15.30/15.80 [A__ISNATKIND](X) = 2 15.30/15.80 [A__ISNATLIST](X) = 2.X + 2 15.30/15.80 [A__LENGTH](X) = 2.X + 2 15.30/15.80 [A__ZEROS] = 0 15.30/15.80 [MARK](X) = 2.X + 2 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 SCC Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> A__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Strongly Connected Components: 15.30/15.80 ->->Cycle: 15.30/15.80 ->->-> Pairs: 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 ->->-> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 Reduction Pairs Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U52(tt,V2:S) -> A__ISNATLIST(V2:S) 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 -> Usable rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Interpretation type: 15.30/15.80 Linear 15.30/15.80 ->Coefficients: 15.30/15.80 Natural Numbers 15.30/15.80 ->Dimension: 15.30/15.80 1 15.30/15.80 ->Bound: 15.30/15.80 2 15.30/15.80 ->Interpretation: 15.30/15.80 15.30/15.80 [a__U11](X1,X2) = X1 + X2 15.30/15.80 [a__U12](X) = X 15.30/15.80 [a__U21](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__U22](X) = X + 2 15.30/15.80 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.80 [a__U32](X) = X 15.30/15.80 [a__U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.30/15.80 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [a__U43](X) = X + 2 15.30/15.80 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 15.30/15.80 [a__U52](X1,X2) = X1 + 2.X2 15.30/15.80 [a__U53](X) = X + 2 15.30/15.80 [a__U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__and](X1,X2) = X1 + X2 15.30/15.80 [a__isNat](X) = X + 2 15.30/15.80 [a__isNatIList](X) = 2.X + 2 15.30/15.80 [a__isNatIListKind](X) = 2 15.30/15.80 [a__isNatKind](X) = 2 15.30/15.80 [a__isNatList](X) = X 15.30/15.80 [a__length](X) = X 15.30/15.80 [a__zeros] = 2 15.30/15.80 [mark](X) = X + 2 15.30/15.80 [0] = 0 15.30/15.80 [U11](X1,X2) = X1 + X2 15.30/15.80 [U12](X) = X 15.30/15.80 [U21](X1,X2) = X1 + X2 + 2 15.30/15.80 [U22](X) = X + 2 15.30/15.80 [U31](X1,X2) = X1 + 2.X2 15.30/15.80 [U32](X) = X 15.30/15.80 [U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.30/15.80 [U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [U43](X) = X + 2 15.30/15.80 [U51](X1,X2,X3) = X1 + X2 + 2.X3 15.30/15.80 [U52](X1,X2) = X1 + 2.X2 15.30/15.80 [U53](X) = X + 2 15.30/15.80 [U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [and](X1,X2) = X1 + X2 15.30/15.80 [cons](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [fSNonEmpty] = 0 15.30/15.80 [isNat](X) = X 15.30/15.80 [isNatIList](X) = 2.X + 2 15.30/15.80 [isNatIListKind](X) = 0 15.30/15.80 [isNatKind](X) = 0 15.30/15.80 [isNatList](X) = X 15.30/15.80 [length](X) = X 15.30/15.80 [nil] = 2 15.30/15.80 [s](X) = X + 2 15.30/15.80 [tt] = 2 15.30/15.80 [zeros] = 0 15.30/15.80 [A__U11](X1,X2) = 0 15.30/15.80 [A__U12](X) = 0 15.30/15.80 [A__U21](X1,X2) = 0 15.30/15.80 [A__U22](X) = 0 15.30/15.80 [A__U31](X1,X2) = 0 15.30/15.80 [A__U32](X) = 0 15.30/15.80 [A__U41](X1,X2,X3) = 0 15.30/15.80 [A__U42](X1,X2) = 0 15.30/15.80 [A__U43](X) = 0 15.30/15.80 [A__U51](X1,X2,X3) = 0 15.30/15.80 [A__U52](X1,X2) = 2.X2 + 2 15.30/15.80 [A__U53](X) = 0 15.30/15.80 [A__U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [A__AND](X1,X2) = X1 + X2 15.30/15.80 [A__ISNAT](X) = 2 15.30/15.80 [A__ISNATILIST](X) = 2.X + 2 15.30/15.80 [A__ISNATILISTKIND](X) = 2 15.30/15.80 [A__ISNATKIND](X) = 2 15.30/15.80 [A__ISNATLIST](X) = X + 1 15.30/15.80 [A__LENGTH](X) = X 15.30/15.80 [A__ZEROS] = 0 15.30/15.80 [MARK](X) = X + 2 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 SCC Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> A__U52(mark(X1:S),X2:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Strongly Connected Components: 15.30/15.80 ->->Cycle: 15.30/15.80 ->->-> Pairs: 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 ->->-> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 Reduction Pairs Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U61(tt,L:S) -> A__LENGTH(mark(L:S)) 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.80 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.80 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.80 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.80 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.80 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.80 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.80 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.80 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.80 MARK(length(X:S)) -> MARK(X:S) 15.30/15.80 MARK(s(X:S)) -> MARK(X:S) 15.30/15.80 -> Rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 -> Usable rules: 15.30/15.80 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.80 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.80 a__U12(tt) -> tt 15.30/15.80 a__U12(X:S) -> U12(X:S) 15.30/15.80 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.80 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.80 a__U22(tt) -> tt 15.30/15.80 a__U22(X:S) -> U22(X:S) 15.30/15.80 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.80 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.80 a__U32(tt) -> tt 15.30/15.80 a__U32(X:S) -> U32(X:S) 15.30/15.80 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.80 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.80 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.80 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.80 a__U43(tt) -> tt 15.30/15.80 a__U43(X:S) -> U43(X:S) 15.30/15.80 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.80 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.80 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.80 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.80 a__U53(tt) -> tt 15.30/15.80 a__U53(X:S) -> U53(X:S) 15.30/15.80 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.80 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.80 a__and(tt,X:S) -> mark(X:S) 15.30/15.80 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.80 a__isNat(0) -> tt 15.30/15.80 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.80 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.80 a__isNat(X:S) -> isNat(X:S) 15.30/15.80 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatIList(zeros) -> tt 15.30/15.80 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.80 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.80 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 a__isNatIListKind(nil) -> tt 15.30/15.80 a__isNatIListKind(zeros) -> tt 15.30/15.80 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.80 a__isNatKind(0) -> tt 15.30/15.80 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.80 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.80 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.80 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.80 a__isNatList(nil) -> tt 15.30/15.80 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.80 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 a__length(nil) -> 0 15.30/15.80 a__length(X:S) -> length(X:S) 15.30/15.80 a__zeros -> cons(0,zeros) 15.30/15.80 a__zeros -> zeros 15.30/15.80 mark(0) -> 0 15.30/15.80 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.80 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.80 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.80 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.80 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.80 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.80 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.80 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.80 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.80 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.80 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.80 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.80 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.80 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.80 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.80 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.80 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.80 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.80 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.80 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.80 mark(nil) -> nil 15.30/15.80 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.80 mark(tt) -> tt 15.30/15.80 mark(zeros) -> a__zeros 15.30/15.80 ->Interpretation type: 15.30/15.80 Linear 15.30/15.80 ->Coefficients: 15.30/15.80 Natural Numbers 15.30/15.80 ->Dimension: 15.30/15.80 1 15.30/15.80 ->Bound: 15.30/15.80 2 15.30/15.80 ->Interpretation: 15.30/15.80 15.30/15.80 [a__U11](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__U12](X) = X 15.30/15.80 [a__U21](X1,X2) = X1 + X2 15.30/15.80 [a__U22](X) = X 15.30/15.80 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.80 [a__U32](X) = X + 1 15.30/15.80 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.80 [a__U42](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [a__U43](X) = X + 1 15.30/15.80 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 + 1 15.30/15.80 [a__U52](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [a__U53](X) = X + 2 15.30/15.80 [a__U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [a__and](X1,X2) = X1 + X2 15.30/15.80 [a__isNat](X) = X + 2 15.30/15.80 [a__isNatIList](X) = 2.X + 2 15.30/15.80 [a__isNatIListKind](X) = 2 15.30/15.80 [a__isNatKind](X) = 2 15.30/15.80 [a__isNatList](X) = X + 1 15.30/15.80 [a__length](X) = X + 2 15.30/15.80 [a__zeros] = 2 15.30/15.80 [mark](X) = X + 2 15.30/15.80 [0] = 0 15.30/15.80 [U11](X1,X2) = X1 + X2 + 2 15.30/15.80 [U12](X) = X 15.30/15.80 [U21](X1,X2) = X1 + X2 15.30/15.80 [U22](X) = X 15.30/15.80 [U31](X1,X2) = X1 + 2.X2 15.30/15.80 [U32](X) = X + 1 15.30/15.80 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.80 [U42](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [U43](X) = X + 1 15.30/15.80 [U51](X1,X2,X3) = X1 + X2 + 2.X3 + 1 15.30/15.80 [U52](X1,X2) = X1 + 2.X2 + 1 15.30/15.80 [U53](X) = X + 2 15.30/15.80 [U61](X1,X2) = X1 + X2 + 2 15.30/15.80 [and](X1,X2) = X1 + X2 15.30/15.80 [cons](X1,X2) = X1 + 2.X2 + 2 15.30/15.80 [fSNonEmpty] = 0 15.30/15.80 [isNat](X) = X 15.30/15.80 [isNatIList](X) = 2.X + 1 15.30/15.80 [isNatIListKind](X) = 0 15.30/15.80 [isNatKind](X) = 0 15.30/15.80 [isNatList](X) = X + 1 15.30/15.80 [length](X) = X + 2 15.30/15.80 [nil] = 1 15.30/15.80 [s](X) = X 15.30/15.80 [tt] = 2 15.30/15.80 [zeros] = 0 15.30/15.80 [A__U11](X1,X2) = 0 15.30/15.80 [A__U12](X) = 0 15.30/15.80 [A__U21](X1,X2) = 0 15.30/15.80 [A__U22](X) = 0 15.30/15.80 [A__U31](X1,X2) = 0 15.30/15.80 [A__U32](X) = 0 15.30/15.80 [A__U41](X1,X2,X3) = 0 15.30/15.80 [A__U42](X1,X2) = 0 15.30/15.80 [A__U43](X) = 0 15.30/15.80 [A__U51](X1,X2,X3) = 0 15.30/15.80 [A__U52](X1,X2) = 0 15.30/15.80 [A__U53](X) = 0 15.30/15.80 [A__U61](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.80 [A__AND](X1,X2) = X1 + 2.X2 15.30/15.80 [A__ISNAT](X) = 2.X + 2 15.30/15.80 [A__ISNATILIST](X) = 2 15.30/15.80 [A__ISNATILISTKIND](X) = 2 15.30/15.80 [A__ISNATKIND](X) = 2 15.30/15.80 [A__ISNATLIST](X) = 2.X 15.30/15.80 [A__LENGTH](X) = 2.X + 1 15.30/15.80 [A__ZEROS] = 0 15.30/15.80 [MARK](X) = 2.X + 2 15.30/15.80 15.30/15.80 Problem 1: 15.30/15.80 15.30/15.80 SCC Processor: 15.30/15.80 -> Pairs: 15.30/15.80 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.80 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.80 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.80 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.80 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.80 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.80 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.80 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Strongly Connected Components: 15.30/15.81 ->->Cycle: 15.30/15.81 ->->-> Pairs: 15.30/15.81 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 ->->-> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 Reduction Pairs Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__U61(tt,L:S) -> MARK(L:S) 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 -> Usable rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Interpretation type: 15.30/15.81 Linear 15.30/15.81 ->Coefficients: 15.30/15.81 Natural Numbers 15.30/15.81 ->Dimension: 15.30/15.81 1 15.30/15.81 ->Bound: 15.30/15.81 2 15.30/15.81 ->Interpretation: 15.30/15.81 15.30/15.81 [a__U11](X1,X2) = X1 15.30/15.81 [a__U12](X) = X 15.30/15.81 [a__U21](X1,X2) = X1 15.30/15.81 [a__U22](X) = X 15.30/15.81 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.81 [a__U32](X) = X 15.30/15.81 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.30/15.81 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.81 [a__U43](X) = X + 2 15.30/15.81 [a__U51](X1,X2,X3) = X1 15.30/15.81 [a__U52](X1,X2) = X1 15.30/15.81 [a__U53](X) = X 15.30/15.81 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [a__and](X1,X2) = X1 + 2.X2 15.30/15.81 [a__isNat](X) = 2 15.30/15.81 [a__isNatIList](X) = 2.X + 2 15.30/15.81 [a__isNatIListKind](X) = 2 15.30/15.81 [a__isNatKind](X) = 2 15.30/15.81 [a__isNatList](X) = 2 15.30/15.81 [a__length](X) = X + 2 15.30/15.81 [a__zeros] = 2 15.30/15.81 [mark](X) = 2.X + 2 15.30/15.81 [0] = 0 15.30/15.81 [U11](X1,X2) = X1 15.30/15.81 [U12](X) = X 15.30/15.81 [U21](X1,X2) = X1 15.30/15.81 [U22](X) = X 15.30/15.81 [U31](X1,X2) = X1 + X2 15.30/15.81 [U32](X) = X 15.30/15.81 [U41](X1,X2,X3) = 2.X1 + X2 + X3 + 2 15.30/15.81 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.81 [U43](X) = X + 2 15.30/15.81 [U51](X1,X2,X3) = X1 15.30/15.81 [U52](X1,X2) = X1 15.30/15.81 [U53](X) = X 15.30/15.81 [U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [and](X1,X2) = X1 + X2 15.30/15.81 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.81 [fSNonEmpty] = 0 15.30/15.81 [isNat](X) = 0 15.30/15.81 [isNatIList](X) = X + 2 15.30/15.81 [isNatIListKind](X) = 0 15.30/15.81 [isNatKind](X) = 0 15.30/15.81 [isNatList](X) = 2 15.30/15.81 [length](X) = X + 2 15.30/15.81 [nil] = 2 15.30/15.81 [s](X) = X 15.30/15.81 [tt] = 2 15.30/15.81 [zeros] = 0 15.30/15.81 [A__U11](X1,X2) = 0 15.30/15.81 [A__U12](X) = 0 15.30/15.81 [A__U21](X1,X2) = 0 15.30/15.81 [A__U22](X) = 0 15.30/15.81 [A__U31](X1,X2) = 0 15.30/15.81 [A__U32](X) = 0 15.30/15.81 [A__U41](X1,X2,X3) = 0 15.30/15.81 [A__U42](X1,X2) = 0 15.30/15.81 [A__U43](X) = 0 15.30/15.81 [A__U51](X1,X2,X3) = 0 15.30/15.81 [A__U52](X1,X2) = 0 15.30/15.81 [A__U53](X) = 0 15.30/15.81 [A__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [A__AND](X1,X2) = 2.X2 + 2 15.30/15.81 [A__ISNAT](X) = 2 15.30/15.81 [A__ISNATILIST](X) = 2.X + 2 15.30/15.81 [A__ISNATILISTKIND](X) = 2 15.30/15.81 [A__ISNATKIND](X) = 2 15.30/15.81 [A__ISNATLIST](X) = 2 15.30/15.81 [A__LENGTH](X) = X + 2 15.30/15.81 [A__ZEROS] = 0 15.30/15.81 [MARK](X) = 2.X + 2 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 SCC Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> A__U61(mark(X1:S),X2:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Strongly Connected Components: 15.30/15.81 ->->Cycle: 15.30/15.81 ->->-> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 ->->-> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 Reduction Pairs Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 -> Usable rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Interpretation type: 15.30/15.81 Linear 15.30/15.81 ->Coefficients: 15.30/15.81 Natural Numbers 15.30/15.81 ->Dimension: 15.30/15.81 1 15.30/15.81 ->Bound: 15.30/15.81 2 15.30/15.81 ->Interpretation: 15.30/15.81 15.30/15.81 [a__U11](X1,X2) = X1 + X2 + 1 15.30/15.81 [a__U12](X) = X + 2 15.30/15.81 [a__U21](X1,X2) = X1 + X2 + 1 15.30/15.81 [a__U22](X) = X + 1 15.30/15.81 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.81 [a__U32](X) = X + 1 15.30/15.81 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.81 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [a__U43](X) = X 15.30/15.81 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 + 1 15.30/15.81 [a__U52](X1,X2) = X1 + 2.X2 + 1 15.30/15.81 [a__U53](X) = X + 2 15.30/15.81 [a__U61](X1,X2) = X1 + X2 + 2 15.30/15.81 [a__and](X1,X2) = X1 + X2 15.30/15.81 [a__isNat](X) = X + 2 15.30/15.81 [a__isNatIList](X) = 2.X + 2 15.30/15.81 [a__isNatIListKind](X) = 2 15.30/15.81 [a__isNatKind](X) = 2 15.30/15.81 [a__isNatList](X) = X + 1 15.30/15.81 [a__length](X) = X + 1 15.30/15.81 [a__zeros] = 2 15.30/15.81 [mark](X) = X + 2 15.30/15.81 [0] = 0 15.30/15.81 [U11](X1,X2) = X1 + X2 + 1 15.30/15.81 [U12](X) = X + 2 15.30/15.81 [U21](X1,X2) = X1 + X2 + 1 15.30/15.81 [U22](X) = X + 1 15.30/15.81 [U31](X1,X2) = X1 + 2.X2 15.30/15.81 [U32](X) = X + 1 15.30/15.81 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.81 [U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [U43](X) = X 15.30/15.81 [U51](X1,X2,X3) = X1 + X2 + 2.X3 + 1 15.30/15.81 [U52](X1,X2) = X1 + 2.X2 + 1 15.30/15.81 [U53](X) = X + 2 15.30/15.81 [U61](X1,X2) = X1 + X2 + 2 15.30/15.81 [and](X1,X2) = X1 + X2 15.30/15.81 [cons](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [fSNonEmpty] = 0 15.30/15.81 [isNat](X) = X 15.30/15.81 [isNatIList](X) = 2.X + 2 15.30/15.81 [isNatIListKind](X) = 0 15.30/15.81 [isNatKind](X) = 0 15.30/15.81 [isNatList](X) = X + 1 15.30/15.81 [length](X) = X + 1 15.30/15.81 [nil] = 2 15.30/15.81 [s](X) = X + 1 15.30/15.81 [tt] = 2 15.30/15.81 [zeros] = 0 15.30/15.81 [A__U11](X1,X2) = 0 15.30/15.81 [A__U12](X) = 0 15.30/15.81 [A__U21](X1,X2) = 0 15.30/15.81 [A__U22](X) = 0 15.30/15.81 [A__U31](X1,X2) = 0 15.30/15.81 [A__U32](X) = 0 15.30/15.81 [A__U41](X1,X2,X3) = 0 15.30/15.81 [A__U42](X1,X2) = 0 15.30/15.81 [A__U43](X) = 0 15.30/15.81 [A__U51](X1,X2,X3) = 0 15.30/15.81 [A__U52](X1,X2) = 0 15.30/15.81 [A__U53](X) = 0 15.30/15.81 [A__U61](X1,X2) = 0 15.30/15.81 [A__AND](X1,X2) = X1 + 2.X2 15.30/15.81 [A__ISNAT](X) = X + 2 15.30/15.81 [A__ISNATILIST](X) = 2.X + 2 15.30/15.81 [A__ISNATILISTKIND](X) = 2 15.30/15.81 [A__ISNATKIND](X) = 2 15.30/15.81 [A__ISNATLIST](X) = X + 2 15.30/15.81 [A__LENGTH](X) = 2.X 15.30/15.81 [A__ZEROS] = 0 15.30/15.81 [MARK](X) = 2.X + 2 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 SCC Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Strongly Connected Components: 15.30/15.81 ->->Cycle: 15.30/15.81 ->->-> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 ->->-> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 Reduction Pairs Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNAT(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 -> Usable rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Interpretation type: 15.30/15.81 Linear 15.30/15.81 ->Coefficients: 15.30/15.81 Natural Numbers 15.30/15.81 ->Dimension: 15.30/15.81 1 15.30/15.81 ->Bound: 15.30/15.81 2 15.30/15.81 ->Interpretation: 15.30/15.81 15.30/15.81 [a__U11](X1,X2) = X1 + X2 15.30/15.81 [a__U12](X) = X + 2 15.30/15.81 [a__U21](X1,X2) = X1 + X2 + 2 15.30/15.81 [a__U22](X) = X + 2 15.30/15.81 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.81 [a__U32](X) = X 15.30/15.81 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.81 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [a__U43](X) = X + 2 15.30/15.81 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 15.30/15.81 [a__U52](X1,X2) = X1 + X2 15.30/15.81 [a__U53](X) = X + 2 15.30/15.81 [a__U61](X1,X2) = X1 + X2 + 2 15.30/15.81 [a__and](X1,X2) = X1 + X2 15.30/15.81 [a__isNat](X) = X + 2 15.30/15.81 [a__isNatIList](X) = 2.X + 2 15.30/15.81 [a__isNatIListKind](X) = 2 15.30/15.81 [a__isNatKind](X) = 2 15.30/15.81 [a__isNatList](X) = X 15.30/15.81 [a__length](X) = X 15.30/15.81 [a__zeros] = 2 15.30/15.81 [mark](X) = X + 2 15.30/15.81 [0] = 0 15.30/15.81 [U11](X1,X2) = X1 + X2 15.30/15.81 [U12](X) = X + 2 15.30/15.81 [U21](X1,X2) = X1 + X2 + 2 15.30/15.81 [U22](X) = X + 2 15.30/15.81 [U31](X1,X2) = X1 + 2.X2 15.30/15.81 [U32](X) = X 15.30/15.81 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.30/15.81 [U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [U43](X) = X + 2 15.30/15.81 [U51](X1,X2,X3) = X1 + X2 + 2.X3 15.30/15.81 [U52](X1,X2) = X1 + X2 15.30/15.81 [U53](X) = X + 2 15.30/15.81 [U61](X1,X2) = X1 + X2 + 2 15.30/15.81 [and](X1,X2) = X1 + X2 15.30/15.81 [cons](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [fSNonEmpty] = 0 15.30/15.81 [isNat](X) = X 15.30/15.81 [isNatIList](X) = 2.X + 1 15.30/15.81 [isNatIListKind](X) = 0 15.30/15.81 [isNatKind](X) = 0 15.30/15.81 [isNatList](X) = X 15.30/15.81 [length](X) = X 15.30/15.81 [nil] = 2 15.30/15.81 [s](X) = X + 2 15.30/15.81 [tt] = 2 15.30/15.81 [zeros] = 0 15.30/15.81 [A__U11](X1,X2) = 0 15.30/15.81 [A__U12](X) = 0 15.30/15.81 [A__U21](X1,X2) = 0 15.30/15.81 [A__U22](X) = 0 15.30/15.81 [A__U31](X1,X2) = 0 15.30/15.81 [A__U32](X) = 0 15.30/15.81 [A__U41](X1,X2,X3) = 0 15.30/15.81 [A__U42](X1,X2) = 0 15.30/15.81 [A__U43](X) = 0 15.30/15.81 [A__U51](X1,X2,X3) = 0 15.30/15.81 [A__U52](X1,X2) = 0 15.30/15.81 [A__U53](X) = 0 15.30/15.81 [A__U61](X1,X2) = 0 15.30/15.81 [A__AND](X1,X2) = X1 + X2 15.30/15.81 [A__ISNAT](X) = X + 1 15.30/15.81 [A__ISNATILIST](X) = 2 15.30/15.81 [A__ISNATILISTKIND](X) = 2 15.30/15.81 [A__ISNATKIND](X) = 2 15.30/15.81 [A__ISNATLIST](X) = X + 2 15.30/15.81 [A__LENGTH](X) = X 15.30/15.81 [A__ZEROS] = 0 15.30/15.81 [MARK](X) = X + 2 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 SCC Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNat(X:S)) -> A__ISNAT(X:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Strongly Connected Components: 15.30/15.81 ->->Cycle: 15.30/15.81 ->->-> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 ->->-> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 Reduction Pairs Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.81 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.81 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.81 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.81 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.81 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.81 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.81 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.81 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.81 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.81 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.81 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.81 MARK(length(X:S)) -> MARK(X:S) 15.30/15.81 MARK(s(X:S)) -> MARK(X:S) 15.30/15.81 -> Rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 -> Usable rules: 15.30/15.81 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.81 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.81 a__U12(tt) -> tt 15.30/15.81 a__U12(X:S) -> U12(X:S) 15.30/15.81 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.81 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.81 a__U22(tt) -> tt 15.30/15.81 a__U22(X:S) -> U22(X:S) 15.30/15.81 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.81 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.81 a__U32(tt) -> tt 15.30/15.81 a__U32(X:S) -> U32(X:S) 15.30/15.81 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.81 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.81 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.81 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.81 a__U43(tt) -> tt 15.30/15.81 a__U43(X:S) -> U43(X:S) 15.30/15.81 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.81 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.81 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.81 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.81 a__U53(tt) -> tt 15.30/15.81 a__U53(X:S) -> U53(X:S) 15.30/15.81 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.81 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.81 a__and(tt,X:S) -> mark(X:S) 15.30/15.81 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.81 a__isNat(0) -> tt 15.30/15.81 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.81 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.81 a__isNat(X:S) -> isNat(X:S) 15.30/15.81 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatIList(zeros) -> tt 15.30/15.81 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.81 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.81 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.81 a__isNatIListKind(nil) -> tt 15.30/15.81 a__isNatIListKind(zeros) -> tt 15.30/15.81 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.81 a__isNatKind(0) -> tt 15.30/15.81 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.81 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.81 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.81 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.81 a__isNatList(nil) -> tt 15.30/15.81 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.81 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.81 a__length(nil) -> 0 15.30/15.81 a__length(X:S) -> length(X:S) 15.30/15.81 a__zeros -> cons(0,zeros) 15.30/15.81 a__zeros -> zeros 15.30/15.81 mark(0) -> 0 15.30/15.81 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.81 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.81 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.81 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.81 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.81 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.81 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.81 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.81 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.81 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.81 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.81 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.81 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.81 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.81 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.81 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.81 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.81 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.81 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.81 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.81 mark(nil) -> nil 15.30/15.81 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.81 mark(tt) -> tt 15.30/15.81 mark(zeros) -> a__zeros 15.30/15.81 ->Interpretation type: 15.30/15.81 Linear 15.30/15.81 ->Coefficients: 15.30/15.81 Natural Numbers 15.30/15.81 ->Dimension: 15.30/15.81 1 15.30/15.81 ->Bound: 15.30/15.81 2 15.30/15.81 ->Interpretation: 15.30/15.81 15.30/15.81 [a__U11](X1,X2) = X1 15.30/15.81 [a__U12](X) = X 15.30/15.81 [a__U21](X1,X2) = X1 15.30/15.81 [a__U22](X) = X 15.30/15.81 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.81 [a__U32](X) = X 15.30/15.81 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 15.30/15.81 [a__U42](X1,X2) = X1 + 2.X2 15.30/15.81 [a__U43](X) = X 15.30/15.81 [a__U51](X1,X2,X3) = X1 15.30/15.81 [a__U52](X1,X2) = X1 15.30/15.81 [a__U53](X) = X 15.30/15.81 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.81 [a__and](X1,X2) = X1 + 2.X2 15.30/15.81 [a__isNat](X) = 2 15.30/15.81 [a__isNatIList](X) = 2.X + 2 15.30/15.81 [a__isNatIListKind](X) = 2 15.30/15.81 [a__isNatKind](X) = 2 15.30/15.81 [a__isNatList](X) = 2 15.30/15.81 [a__length](X) = X + 2 15.30/15.81 [a__zeros] = 2 15.30/15.81 [mark](X) = 2.X + 2 15.30/15.81 [0] = 0 15.30/15.81 [U11](X1,X2) = X1 15.30/15.81 [U12](X) = X 15.30/15.81 [U21](X1,X2) = X1 15.30/15.81 [U22](X) = X 15.30/15.81 [U31](X1,X2) = X1 + 2.X2 15.30/15.81 [U32](X) = X 15.30/15.81 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 15.30/15.81 [U42](X1,X2) = X1 + X2 15.30/15.81 [U43](X) = X 15.30/15.81 [U51](X1,X2,X3) = X1 15.30/15.81 [U52](X1,X2) = X1 15.30/15.81 [U53](X) = X 15.30/15.81 [U61](X1,X2) = X1 + X2 + 1 15.30/15.81 [and](X1,X2) = X1 + 2.X2 15.30/15.81 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.81 [fSNonEmpty] = 0 15.30/15.81 [isNat](X) = 0 15.30/15.81 [isNatIList](X) = 2.X 15.30/15.81 [isNatIListKind](X) = 0 15.30/15.81 [isNatKind](X) = 0 15.30/15.81 [isNatList](X) = 1 15.30/15.81 [length](X) = X + 1 15.30/15.81 [nil] = 1 15.30/15.81 [s](X) = X 15.30/15.81 [tt] = 2 15.30/15.81 [zeros] = 0 15.30/15.81 [A__U11](X1,X2) = 0 15.30/15.81 [A__U12](X) = 0 15.30/15.81 [A__U21](X1,X2) = 0 15.30/15.81 [A__U22](X) = 0 15.30/15.81 [A__U31](X1,X2) = 0 15.30/15.81 [A__U32](X) = 0 15.30/15.81 [A__U41](X1,X2,X3) = 0 15.30/15.81 [A__U42](X1,X2) = 0 15.30/15.81 [A__U43](X) = 0 15.30/15.81 [A__U51](X1,X2,X3) = 0 15.30/15.81 [A__U52](X1,X2) = 0 15.30/15.81 [A__U53](X) = 0 15.30/15.81 [A__U61](X1,X2) = 0 15.30/15.81 [A__AND](X1,X2) = 2.X2 15.30/15.81 [A__ISNAT](X) = 0 15.30/15.81 [A__ISNATILIST](X) = X 15.30/15.81 [A__ISNATILISTKIND](X) = 0 15.30/15.81 [A__ISNATKIND](X) = 0 15.30/15.81 [A__ISNATLIST](X) = 1 15.30/15.81 [A__LENGTH](X) = 2 15.30/15.81 [A__ZEROS] = 0 15.30/15.81 [MARK](X) = 2.X 15.30/15.81 15.30/15.81 Problem 1: 15.30/15.81 15.30/15.81 SCC Processor: 15.30/15.81 -> Pairs: 15.30/15.81 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Strongly Connected Components: 15.30/15.82 ->->Cycle: 15.30/15.82 ->->-> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 ->->-> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 Reduction Pairs Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 -> Usable rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Interpretation type: 15.30/15.82 Linear 15.30/15.82 ->Coefficients: 15.30/15.82 Natural Numbers 15.30/15.82 ->Dimension: 15.30/15.82 1 15.30/15.82 ->Bound: 15.30/15.82 2 15.30/15.82 ->Interpretation: 15.30/15.82 15.30/15.82 [a__U11](X1,X2) = X1 15.30/15.82 [a__U12](X) = X 15.30/15.82 [a__U21](X1,X2) = X1 15.30/15.82 [a__U22](X) = X 15.30/15.82 [a__U31](X1,X2) = X1 + X2 15.30/15.82 [a__U32](X) = X 15.30/15.82 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.30/15.82 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [a__U43](X) = X 15.30/15.82 [a__U51](X1,X2,X3) = X1 15.30/15.82 [a__U52](X1,X2) = X1 15.30/15.82 [a__U53](X) = X 15.30/15.82 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.82 [a__and](X1,X2) = X1 + 2.X2 15.30/15.82 [a__isNat](X) = 2 15.30/15.82 [a__isNatIList](X) = 2.X + 2 15.30/15.82 [a__isNatIListKind](X) = 2 15.30/15.82 [a__isNatKind](X) = 2 15.30/15.82 [a__isNatList](X) = 2 15.30/15.82 [a__length](X) = X + 2 15.30/15.82 [a__zeros] = 2 15.30/15.82 [mark](X) = 2.X + 2 15.30/15.82 [0] = 0 15.30/15.82 [U11](X1,X2) = X1 15.30/15.82 [U12](X) = X 15.30/15.82 [U21](X1,X2) = X1 15.30/15.82 [U22](X) = X 15.30/15.82 [U31](X1,X2) = X1 + X2 15.30/15.82 [U32](X) = X 15.30/15.82 [U41](X1,X2,X3) = 2.X1 + X2 + X3 + 2 15.30/15.82 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [U43](X) = X 15.30/15.82 [U51](X1,X2,X3) = X1 15.30/15.82 [U52](X1,X2) = X1 15.30/15.82 [U53](X) = X 15.30/15.82 [U61](X1,X2) = X1 + X2 + 2 15.30/15.82 [and](X1,X2) = X1 + 2.X2 15.30/15.82 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [fSNonEmpty] = 0 15.30/15.82 [isNat](X) = 0 15.30/15.82 [isNatIList](X) = 2.X + 1 15.30/15.82 [isNatIListKind](X) = 0 15.30/15.82 [isNatKind](X) = 0 15.30/15.82 [isNatList](X) = 2 15.30/15.82 [length](X) = X + 2 15.30/15.82 [nil] = 1 15.30/15.82 [s](X) = X 15.30/15.82 [tt] = 2 15.30/15.82 [zeros] = 0 15.30/15.82 [A__U11](X1,X2) = 0 15.30/15.82 [A__U12](X) = 0 15.30/15.82 [A__U21](X1,X2) = 0 15.30/15.82 [A__U22](X) = 0 15.30/15.82 [A__U31](X1,X2) = 0 15.30/15.82 [A__U32](X) = 0 15.30/15.82 [A__U41](X1,X2,X3) = 0 15.30/15.82 [A__U42](X1,X2) = 0 15.30/15.82 [A__U43](X) = 0 15.30/15.82 [A__U51](X1,X2,X3) = 0 15.30/15.82 [A__U52](X1,X2) = 0 15.30/15.82 [A__U53](X) = 0 15.30/15.82 [A__U61](X1,X2) = 0 15.30/15.82 [A__AND](X1,X2) = 2.X2 + 2 15.30/15.82 [A__ISNAT](X) = 0 15.30/15.82 [A__ISNATILIST](X) = 2.X + 2 15.30/15.82 [A__ISNATILISTKIND](X) = 2 15.30/15.82 [A__ISNATKIND](X) = 2 15.30/15.82 [A__ISNATLIST](X) = 2 15.30/15.82 [A__LENGTH](X) = 2 15.30/15.82 [A__ZEROS] = 0 15.30/15.82 [MARK](X) = 2.X + 2 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 SCC Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Strongly Connected Components: 15.30/15.82 ->->Cycle: 15.30/15.82 ->->-> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 ->->-> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 Reduction Pairs Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILIST(V:S) -> A__ISNATILISTKIND(V:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 -> Usable rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Interpretation type: 15.30/15.82 Linear 15.30/15.82 ->Coefficients: 15.30/15.82 Natural Numbers 15.30/15.82 ->Dimension: 15.30/15.82 1 15.30/15.82 ->Bound: 15.30/15.82 2 15.30/15.82 ->Interpretation: 15.30/15.82 15.30/15.82 [a__U11](X1,X2) = X1 15.30/15.82 [a__U12](X) = X 15.30/15.82 [a__U21](X1,X2) = X1 15.30/15.82 [a__U22](X) = X 15.30/15.82 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.82 [a__U32](X) = X 15.30/15.82 [a__U41](X1,X2,X3) = 2.X1 + 2.X3 + 2 15.30/15.82 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [a__U43](X) = X + 1 15.30/15.82 [a__U51](X1,X2,X3) = X1 15.30/15.82 [a__U52](X1,X2) = X1 15.30/15.82 [a__U53](X) = X 15.30/15.82 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.82 [a__and](X1,X2) = X1 + 2.X2 15.30/15.82 [a__isNat](X) = 2 15.30/15.82 [a__isNatIList](X) = 2.X + 2 15.30/15.82 [a__isNatIListKind](X) = 2 15.30/15.82 [a__isNatKind](X) = 2 15.30/15.82 [a__isNatList](X) = 2 15.30/15.82 [a__length](X) = X + 2 15.30/15.82 [a__zeros] = 2 15.30/15.82 [mark](X) = 2.X + 2 15.30/15.82 [0] = 0 15.30/15.82 [U11](X1,X2) = X1 15.30/15.82 [U12](X) = X 15.30/15.82 [U21](X1,X2) = X1 15.30/15.82 [U22](X) = X 15.30/15.82 [U31](X1,X2) = X1 + 2.X2 15.30/15.82 [U32](X) = X 15.30/15.82 [U41](X1,X2,X3) = 2.X1 + 2.X3 + 2 15.30/15.82 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [U43](X) = X + 1 15.30/15.82 [U51](X1,X2,X3) = X1 15.30/15.82 [U52](X1,X2) = X1 15.30/15.82 [U53](X) = X 15.30/15.82 [U61](X1,X2) = X1 + 2.X2 + 1 15.30/15.82 [and](X1,X2) = X1 + 2.X2 15.30/15.82 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [fSNonEmpty] = 0 15.30/15.82 [isNat](X) = 0 15.30/15.82 [isNatIList](X) = X + 2 15.30/15.82 [isNatIListKind](X) = 0 15.30/15.82 [isNatKind](X) = 0 15.30/15.82 [isNatList](X) = 2 15.30/15.82 [length](X) = X + 2 15.30/15.82 [nil] = 1 15.30/15.82 [s](X) = X 15.30/15.82 [tt] = 2 15.30/15.82 [zeros] = 0 15.30/15.82 [A__U11](X1,X2) = 0 15.30/15.82 [A__U12](X) = 0 15.30/15.82 [A__U21](X1,X2) = 0 15.30/15.82 [A__U22](X) = 0 15.30/15.82 [A__U31](X1,X2) = 0 15.30/15.82 [A__U32](X) = 0 15.30/15.82 [A__U41](X1,X2,X3) = 0 15.30/15.82 [A__U42](X1,X2) = 0 15.30/15.82 [A__U43](X) = 0 15.30/15.82 [A__U51](X1,X2,X3) = 0 15.30/15.82 [A__U52](X1,X2) = 0 15.30/15.82 [A__U53](X) = 0 15.30/15.82 [A__U61](X1,X2) = 0 15.30/15.82 [A__AND](X1,X2) = 2.X2 + 1 15.30/15.82 [A__ISNAT](X) = 0 15.30/15.82 [A__ISNATILIST](X) = 2 15.30/15.82 [A__ISNATILISTKIND](X) = 1 15.30/15.82 [A__ISNATKIND](X) = 1 15.30/15.82 [A__ISNATLIST](X) = 2 15.30/15.82 [A__LENGTH](X) = X + 1 15.30/15.82 [A__ZEROS] = 0 15.30/15.82 [MARK](X) = 2.X + 1 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 SCC Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIList(X:S)) -> A__ISNATILIST(X:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Strongly Connected Components: 15.30/15.82 ->->Cycle: 15.30/15.82 ->->-> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 ->->-> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 Reduction Pairs Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 -> Usable rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Interpretation type: 15.30/15.82 Linear 15.30/15.82 ->Coefficients: 15.30/15.82 Natural Numbers 15.30/15.82 ->Dimension: 15.30/15.82 1 15.30/15.82 ->Bound: 15.30/15.82 2 15.30/15.82 ->Interpretation: 15.30/15.82 15.30/15.82 [a__U11](X1,X2) = X1 15.30/15.82 [a__U12](X) = X 15.30/15.82 [a__U21](X1,X2) = X1 15.30/15.82 [a__U22](X) = X 15.30/15.82 [a__U31](X1,X2) = X1 15.30/15.82 [a__U32](X) = X 15.30/15.82 [a__U41](X1,X2,X3) = 2.X1 + 2.X3 + 2 15.30/15.82 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [a__U43](X) = X + 2 15.30/15.82 [a__U51](X1,X2,X3) = X1 15.30/15.82 [a__U52](X1,X2) = X1 15.30/15.82 [a__U53](X) = X 15.30/15.82 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.82 [a__and](X1,X2) = X1 + 2.X2 15.30/15.82 [a__isNat](X) = 2 15.30/15.82 [a__isNatIList](X) = 2.X + 2 15.30/15.82 [a__isNatIListKind](X) = 2 15.30/15.82 [a__isNatKind](X) = 2 15.30/15.82 [a__isNatList](X) = 2 15.30/15.82 [a__length](X) = X + 2 15.30/15.82 [a__zeros] = 2 15.30/15.82 [mark](X) = 2.X + 2 15.30/15.82 [0] = 0 15.30/15.82 [U11](X1,X2) = X1 15.30/15.82 [U12](X) = X 15.30/15.82 [U21](X1,X2) = X1 15.30/15.82 [U22](X) = X 15.30/15.82 [U31](X1,X2) = X1 15.30/15.82 [U32](X) = X 15.30/15.82 [U41](X1,X2,X3) = 2.X1 + X3 + 2 15.30/15.82 [U42](X1,X2) = 2.X1 + X2 + 2 15.30/15.82 [U43](X) = X + 1 15.30/15.82 [U51](X1,X2,X3) = X1 15.30/15.82 [U52](X1,X2) = X1 15.30/15.82 [U53](X) = X 15.30/15.82 [U61](X1,X2) = X1 + X2 + 2 15.30/15.82 [and](X1,X2) = X1 + 2.X2 15.30/15.82 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [fSNonEmpty] = 0 15.30/15.82 [isNat](X) = 0 15.30/15.82 [isNatIList](X) = 2.X + 1 15.30/15.82 [isNatIListKind](X) = 0 15.30/15.82 [isNatKind](X) = 0 15.30/15.82 [isNatList](X) = 2 15.30/15.82 [length](X) = X + 1 15.30/15.82 [nil] = 2 15.30/15.82 [s](X) = X 15.30/15.82 [tt] = 2 15.30/15.82 [zeros] = 0 15.30/15.82 [A__U11](X1,X2) = 0 15.30/15.82 [A__U12](X) = 0 15.30/15.82 [A__U21](X1,X2) = 0 15.30/15.82 [A__U22](X) = 0 15.30/15.82 [A__U31](X1,X2) = 0 15.30/15.82 [A__U32](X) = 0 15.30/15.82 [A__U41](X1,X2,X3) = 0 15.30/15.82 [A__U42](X1,X2) = 0 15.30/15.82 [A__U43](X) = 0 15.30/15.82 [A__U51](X1,X2,X3) = 0 15.30/15.82 [A__U52](X1,X2) = 0 15.30/15.82 [A__U53](X) = 0 15.30/15.82 [A__U61](X1,X2) = 0 15.30/15.82 [A__AND](X1,X2) = 2.X2 + 1 15.30/15.82 [A__ISNAT](X) = 0 15.30/15.82 [A__ISNATILIST](X) = 0 15.30/15.82 [A__ISNATILISTKIND](X) = 1 15.30/15.82 [A__ISNATKIND](X) = 1 15.30/15.82 [A__ISNATLIST](X) = 2 15.30/15.82 [A__LENGTH](X) = 2 15.30/15.82 [A__ZEROS] = 0 15.30/15.82 [MARK](X) = 2.X + 1 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 SCC Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Strongly Connected Components: 15.30/15.82 ->->Cycle: 15.30/15.82 ->->-> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 ->->-> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 Reduction Pairs Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.82 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__ISNATLIST(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.82 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.82 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.82 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.82 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.82 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.82 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.82 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.82 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.82 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.82 MARK(length(X:S)) -> MARK(X:S) 15.30/15.82 MARK(s(X:S)) -> MARK(X:S) 15.30/15.82 -> Rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 -> Usable rules: 15.30/15.82 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.82 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.82 a__U12(tt) -> tt 15.30/15.82 a__U12(X:S) -> U12(X:S) 15.30/15.82 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.82 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.82 a__U22(tt) -> tt 15.30/15.82 a__U22(X:S) -> U22(X:S) 15.30/15.82 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.82 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.82 a__U32(tt) -> tt 15.30/15.82 a__U32(X:S) -> U32(X:S) 15.30/15.82 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.82 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.82 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.82 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.82 a__U43(tt) -> tt 15.30/15.82 a__U43(X:S) -> U43(X:S) 15.30/15.82 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.82 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.82 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.82 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.82 a__U53(tt) -> tt 15.30/15.82 a__U53(X:S) -> U53(X:S) 15.30/15.82 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.82 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.82 a__and(tt,X:S) -> mark(X:S) 15.30/15.82 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.82 a__isNat(0) -> tt 15.30/15.82 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.82 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.82 a__isNat(X:S) -> isNat(X:S) 15.30/15.82 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatIList(zeros) -> tt 15.30/15.82 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.82 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.82 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 a__isNatIListKind(nil) -> tt 15.30/15.82 a__isNatIListKind(zeros) -> tt 15.30/15.82 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.82 a__isNatKind(0) -> tt 15.30/15.82 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.82 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.82 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.82 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.82 a__isNatList(nil) -> tt 15.30/15.82 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.82 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.82 a__length(nil) -> 0 15.30/15.82 a__length(X:S) -> length(X:S) 15.30/15.82 a__zeros -> cons(0,zeros) 15.30/15.82 a__zeros -> zeros 15.30/15.82 mark(0) -> 0 15.30/15.82 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.82 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.82 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.82 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.82 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.82 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.82 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.82 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.82 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.82 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.82 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.82 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.82 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.82 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.82 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.82 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.82 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.82 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.82 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.82 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.82 mark(nil) -> nil 15.30/15.82 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.82 mark(tt) -> tt 15.30/15.82 mark(zeros) -> a__zeros 15.30/15.82 ->Interpretation type: 15.30/15.82 Linear 15.30/15.82 ->Coefficients: 15.30/15.82 Natural Numbers 15.30/15.82 ->Dimension: 15.30/15.82 1 15.30/15.82 ->Bound: 15.30/15.82 2 15.30/15.82 ->Interpretation: 15.30/15.82 15.30/15.82 [a__U11](X1,X2) = X1 15.30/15.82 [a__U12](X) = X 15.30/15.82 [a__U21](X1,X2) = X1 15.30/15.82 [a__U22](X) = X 15.30/15.82 [a__U31](X1,X2) = X1 + 2.X2 15.30/15.82 [a__U32](X) = X 15.30/15.82 [a__U41](X1,X2,X3) = 2.X1 + X2 + 2.X3 + 2 15.30/15.82 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [a__U43](X) = X + 2 15.30/15.82 [a__U51](X1,X2,X3) = X1 15.30/15.82 [a__U52](X1,X2) = X1 15.30/15.82 [a__U53](X) = X 15.30/15.82 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.82 [a__and](X1,X2) = X1 + 2.X2 15.30/15.82 [a__isNat](X) = 2 15.30/15.82 [a__isNatIList](X) = 2.X + 2 15.30/15.82 [a__isNatIListKind](X) = 2 15.30/15.82 [a__isNatKind](X) = 2 15.30/15.82 [a__isNatList](X) = 2 15.30/15.82 [a__length](X) = X + 2 15.30/15.82 [a__zeros] = 2 15.30/15.82 [mark](X) = 2.X + 2 15.30/15.82 [0] = 0 15.30/15.82 [U11](X1,X2) = X1 15.30/15.82 [U12](X) = X 15.30/15.82 [U21](X1,X2) = X1 15.30/15.82 [U22](X) = X 15.30/15.82 [U31](X1,X2) = X1 + 2.X2 15.30/15.82 [U32](X) = X 15.30/15.82 [U41](X1,X2,X3) = 2.X1 + X2 + X3 + 2 15.30/15.82 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.82 [U43](X) = X + 2 15.30/15.82 [U51](X1,X2,X3) = X1 15.30/15.82 [U52](X1,X2) = X1 15.30/15.82 [U53](X) = X 15.30/15.82 [U61](X1,X2) = X1 + X2 + 2 15.30/15.82 [and](X1,X2) = X1 + 2.X2 15.30/15.82 [cons](X1,X2) = X1 + 2.X2 + 2 15.30/15.82 [fSNonEmpty] = 0 15.30/15.82 [isNat](X) = 0 15.30/15.82 [isNatIList](X) = 2.X 15.30/15.82 [isNatIListKind](X) = 0 15.30/15.82 [isNatKind](X) = 0 15.30/15.82 [isNatList](X) = 1 15.30/15.82 [length](X) = X + 2 15.30/15.82 [nil] = 1 15.30/15.82 [s](X) = X 15.30/15.82 [tt] = 2 15.30/15.82 [zeros] = 0 15.30/15.82 [A__U11](X1,X2) = 0 15.30/15.82 [A__U12](X) = 0 15.30/15.82 [A__U21](X1,X2) = 0 15.30/15.82 [A__U22](X) = 0 15.30/15.82 [A__U31](X1,X2) = 0 15.30/15.82 [A__U32](X) = 0 15.30/15.82 [A__U41](X1,X2,X3) = 0 15.30/15.82 [A__U42](X1,X2) = 0 15.30/15.82 [A__U43](X) = 0 15.30/15.82 [A__U51](X1,X2,X3) = 0 15.30/15.82 [A__U52](X1,X2) = 0 15.30/15.82 [A__U53](X) = 0 15.30/15.82 [A__U61](X1,X2) = 0 15.30/15.82 [A__AND](X1,X2) = 2.X2 + 1 15.30/15.82 [A__ISNAT](X) = 0 15.30/15.82 [A__ISNATILIST](X) = 0 15.30/15.82 [A__ISNATILISTKIND](X) = 1 15.30/15.82 [A__ISNATKIND](X) = 1 15.30/15.82 [A__ISNATLIST](X) = 2 15.30/15.82 [A__LENGTH](X) = X + 2 15.30/15.82 [A__ZEROS] = 0 15.30/15.82 [MARK](X) = 2.X + 1 15.30/15.82 15.30/15.82 Problem 1: 15.30/15.82 15.30/15.82 SCC Processor: 15.30/15.82 -> Pairs: 15.30/15.82 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.82 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__ISNATLIST(L:S) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(isNatList(X:S)) -> A__ISNATLIST(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 -> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 ->Strongly Connected Components: 15.30/15.83 ->->Cycle: 15.30/15.83 ->->-> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 ->->-> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 15.30/15.83 Problem 1: 15.30/15.83 15.30/15.83 Reduction Pairs Processor: 15.30/15.83 -> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 -> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 -> Usable rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 ->Interpretation type: 15.30/15.83 Linear 15.30/15.83 ->Coefficients: 15.30/15.83 Natural Numbers 15.30/15.83 ->Dimension: 15.30/15.83 1 15.30/15.83 ->Bound: 15.30/15.83 2 15.30/15.83 ->Interpretation: 15.30/15.83 15.30/15.83 [a__U11](X1,X2) = X1 15.30/15.83 [a__U12](X) = X 15.30/15.83 [a__U21](X1,X2) = X1 15.30/15.83 [a__U22](X) = X 15.30/15.83 [a__U31](X1,X2) = X1 + 2.X2 + 1 15.30/15.83 [a__U32](X) = X + 1 15.30/15.83 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.30/15.83 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.83 [a__U43](X) = X + 2 15.30/15.83 [a__U51](X1,X2,X3) = X1 15.30/15.83 [a__U52](X1,X2) = X1 15.30/15.83 [a__U53](X) = X 15.30/15.83 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.83 [a__and](X1,X2) = X1 + 2.X2 15.30/15.83 [a__isNat](X) = 1 15.30/15.83 [a__isNatIList](X) = 2.X + 2 15.30/15.83 [a__isNatIListKind](X) = 1 15.30/15.83 [a__isNatKind](X) = 1 15.30/15.83 [a__isNatList](X) = 1 15.30/15.83 [a__length](X) = X + 2 15.30/15.83 [a__zeros] = 1 15.30/15.83 [mark](X) = 2.X + 1 15.30/15.83 [0] = 0 15.30/15.83 [U11](X1,X2) = X1 15.30/15.83 [U12](X) = X 15.30/15.83 [U21](X1,X2) = X1 15.30/15.83 [U22](X) = X 15.30/15.83 [U31](X1,X2) = X1 + 2.X2 + 1 15.30/15.83 [U32](X) = X + 1 15.30/15.83 [U41](X1,X2,X3) = 2.X1 + X2 + 2.X3 + 2 15.30/15.83 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.83 [U43](X) = X + 1 15.30/15.83 [U51](X1,X2,X3) = X1 15.30/15.83 [U52](X1,X2) = X1 15.30/15.83 [U53](X) = X 15.30/15.83 [U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.83 [and](X1,X2) = X1 + 2.X2 15.30/15.83 [cons](X1,X2) = 2.X1 + 2.X2 + 1 15.30/15.83 [fSNonEmpty] = 0 15.30/15.83 [isNat](X) = 0 15.30/15.83 [isNatIList](X) = 2.X + 2 15.30/15.83 [isNatIListKind](X) = 0 15.30/15.83 [isNatKind](X) = 0 15.30/15.83 [isNatList](X) = 0 15.30/15.83 [length](X) = X + 2 15.30/15.83 [nil] = 0 15.30/15.83 [s](X) = X 15.30/15.83 [tt] = 1 15.30/15.83 [zeros] = 0 15.30/15.83 [A__U11](X1,X2) = 0 15.30/15.83 [A__U12](X) = 0 15.30/15.83 [A__U21](X1,X2) = 0 15.30/15.83 [A__U22](X) = 0 15.30/15.83 [A__U31](X1,X2) = 0 15.30/15.83 [A__U32](X) = 0 15.30/15.83 [A__U41](X1,X2,X3) = 0 15.30/15.83 [A__U42](X1,X2) = 0 15.30/15.83 [A__U43](X) = 0 15.30/15.83 [A__U51](X1,X2,X3) = 0 15.30/15.83 [A__U52](X1,X2) = 0 15.30/15.83 [A__U53](X) = 0 15.30/15.83 [A__U61](X1,X2) = 0 15.30/15.83 [A__AND](X1,X2) = X1 + 2.X2 + 1 15.30/15.83 [A__ISNAT](X) = 0 15.30/15.83 [A__ISNATILIST](X) = 0 15.30/15.83 [A__ISNATILISTKIND](X) = 2 15.30/15.83 [A__ISNATKIND](X) = 2 15.30/15.83 [A__ISNATLIST](X) = 0 15.30/15.83 [A__LENGTH](X) = X + 2 15.30/15.83 [A__ZEROS] = 0 15.30/15.83 [MARK](X) = 2.X + 2 15.30/15.83 15.30/15.83 Problem 1: 15.30/15.83 15.30/15.83 SCC Processor: 15.30/15.83 -> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 -> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 ->Strongly Connected Components: 15.30/15.83 ->->Cycle: 15.30/15.83 ->->-> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 ->->-> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 15.30/15.83 Problem 1: 15.30/15.83 15.30/15.83 Reduction Pairs Processor: 15.30/15.83 -> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__LENGTH(cons(N:S,L:S)) -> A__AND(a__isNatList(L:S),isNatIListKind(L:S)) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 -> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 -> Usable rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 ->Interpretation type: 15.30/15.83 Linear 15.30/15.83 ->Coefficients: 15.30/15.83 Natural Numbers 15.30/15.83 ->Dimension: 15.30/15.83 1 15.30/15.83 ->Bound: 15.30/15.83 2 15.30/15.83 ->Interpretation: 15.30/15.83 15.30/15.83 [a__U11](X1,X2) = X1 15.30/15.83 [a__U12](X) = X 15.30/15.83 [a__U21](X1,X2) = X1 15.30/15.83 [a__U22](X) = X 15.30/15.83 [a__U31](X1,X2) = X1 + X2 15.30/15.83 [a__U32](X) = X 15.30/15.83 [a__U41](X1,X2,X3) = X1 + 2.X3 + 2 15.30/15.83 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.30/15.83 [a__U43](X) = X + 2 15.30/15.83 [a__U51](X1,X2,X3) = X1 15.30/15.83 [a__U52](X1,X2) = X1 15.30/15.83 [a__U53](X) = X 15.30/15.83 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.30/15.83 [a__and](X1,X2) = X1 + 2.X2 15.30/15.83 [a__isNat](X) = 2 15.30/15.83 [a__isNatIList](X) = X + 2 15.30/15.83 [a__isNatIListKind](X) = 2 15.30/15.83 [a__isNatKind](X) = 2 15.30/15.83 [a__isNatList](X) = 2 15.30/15.83 [a__length](X) = X + 2 15.30/15.83 [a__zeros] = 2 15.30/15.83 [mark](X) = 2.X + 2 15.30/15.83 [0] = 0 15.30/15.83 [U11](X1,X2) = X1 15.30/15.83 [U12](X) = X 15.30/15.83 [U21](X1,X2) = X1 15.30/15.83 [U22](X) = X 15.30/15.83 [U31](X1,X2) = X1 + X2 15.30/15.83 [U32](X) = X 15.30/15.83 [U41](X1,X2,X3) = X1 + 2.X3 + 2 15.30/15.83 [U42](X1,X2) = X1 + 2.X2 + 1 15.30/15.83 [U43](X) = X + 1 15.30/15.83 [U51](X1,X2,X3) = X1 15.30/15.83 [U52](X1,X2) = X1 15.30/15.83 [U53](X) = X 15.30/15.83 [U61](X1,X2) = X1 + X2 + 2 15.30/15.83 [and](X1,X2) = X1 + 2.X2 15.30/15.83 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.30/15.83 [fSNonEmpty] = 0 15.30/15.83 [isNat](X) = 0 15.30/15.83 [isNatIList](X) = X + 2 15.30/15.83 [isNatIListKind](X) = 0 15.30/15.83 [isNatKind](X) = 0 15.30/15.83 [isNatList](X) = 2 15.30/15.83 [length](X) = X + 2 15.30/15.83 [nil] = 0 15.30/15.83 [s](X) = X 15.30/15.83 [tt] = 2 15.30/15.83 [zeros] = 0 15.30/15.83 [A__U11](X1,X2) = 0 15.30/15.83 [A__U12](X) = 0 15.30/15.83 [A__U21](X1,X2) = 0 15.30/15.83 [A__U22](X) = 0 15.30/15.83 [A__U31](X1,X2) = 0 15.30/15.83 [A__U32](X) = 0 15.30/15.83 [A__U41](X1,X2,X3) = 0 15.30/15.83 [A__U42](X1,X2) = 0 15.30/15.83 [A__U43](X) = 0 15.30/15.83 [A__U51](X1,X2,X3) = 0 15.30/15.83 [A__U52](X1,X2) = 0 15.30/15.83 [A__U53](X) = 0 15.30/15.83 [A__U61](X1,X2) = 0 15.30/15.83 [A__AND](X1,X2) = X1 + 2.X2 15.30/15.83 [A__ISNAT](X) = 0 15.30/15.83 [A__ISNATILIST](X) = 0 15.30/15.83 [A__ISNATILISTKIND](X) = 2 15.30/15.83 [A__ISNATKIND](X) = 2 15.30/15.83 [A__ISNATLIST](X) = 0 15.30/15.83 [A__LENGTH](X) = X + 1 15.30/15.83 [A__ZEROS] = 0 15.30/15.83 [MARK](X) = 2.X + 2 15.30/15.83 15.30/15.83 Problem 1: 15.30/15.83 15.30/15.83 SCC Processor: 15.30/15.83 -> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> A__LENGTH(mark(X:S)) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 -> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 ->Strongly Connected Components: 15.30/15.83 ->->Cycle: 15.30/15.83 ->->-> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 ->->-> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.30/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.30/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.30/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.30/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.30/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.30/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.30/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.30/15.83 mark(nil) -> nil 15.30/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.30/15.83 mark(tt) -> tt 15.30/15.83 mark(zeros) -> a__zeros 15.30/15.83 15.30/15.83 Problem 1: 15.30/15.83 15.30/15.83 Reduction Pairs Processor: 15.30/15.83 -> Pairs: 15.30/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.30/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.30/15.83 MARK(U11(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.30/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.30/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.30/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.30/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.30/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.30/15.83 MARK(length(X:S)) -> MARK(X:S) 15.30/15.83 MARK(s(X:S)) -> MARK(X:S) 15.30/15.83 -> Rules: 15.30/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.30/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.30/15.83 a__U12(tt) -> tt 15.30/15.83 a__U12(X:S) -> U12(X:S) 15.30/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.30/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.30/15.83 a__U22(tt) -> tt 15.30/15.83 a__U22(X:S) -> U22(X:S) 15.30/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.30/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.30/15.83 a__U32(tt) -> tt 15.30/15.83 a__U32(X:S) -> U32(X:S) 15.30/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.30/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.30/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.30/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.30/15.83 a__U43(tt) -> tt 15.30/15.83 a__U43(X:S) -> U43(X:S) 15.30/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.30/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.30/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.30/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.30/15.83 a__U53(tt) -> tt 15.30/15.83 a__U53(X:S) -> U53(X:S) 15.30/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.30/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.30/15.83 a__and(tt,X:S) -> mark(X:S) 15.30/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.30/15.83 a__isNat(0) -> tt 15.30/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.30/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.30/15.83 a__isNat(X:S) -> isNat(X:S) 15.30/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatIList(zeros) -> tt 15.30/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.30/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.30/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.30/15.83 a__isNatIListKind(nil) -> tt 15.30/15.83 a__isNatIListKind(zeros) -> tt 15.30/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.30/15.83 a__isNatKind(0) -> tt 15.30/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.30/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.30/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.30/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.30/15.83 a__isNatList(nil) -> tt 15.30/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.30/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.30/15.83 a__length(nil) -> 0 15.30/15.83 a__length(X:S) -> length(X:S) 15.30/15.83 a__zeros -> cons(0,zeros) 15.30/15.83 a__zeros -> zeros 15.30/15.83 mark(0) -> 0 15.30/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.30/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.30/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.30/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.30/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.30/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.30/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.30/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.30/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.30/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.30/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.30/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.30/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.83 mark(nil) -> nil 15.31/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.83 mark(tt) -> tt 15.31/15.83 mark(zeros) -> a__zeros 15.31/15.83 -> Usable rules: 15.31/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.83 a__U12(tt) -> tt 15.31/15.83 a__U12(X:S) -> U12(X:S) 15.31/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.83 a__U22(tt) -> tt 15.31/15.83 a__U22(X:S) -> U22(X:S) 15.31/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.83 a__U32(tt) -> tt 15.31/15.83 a__U32(X:S) -> U32(X:S) 15.31/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.83 a__U43(tt) -> tt 15.31/15.83 a__U43(X:S) -> U43(X:S) 15.31/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.83 a__U53(tt) -> tt 15.31/15.83 a__U53(X:S) -> U53(X:S) 15.31/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.83 a__and(tt,X:S) -> mark(X:S) 15.31/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.83 a__isNat(0) -> tt 15.31/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.83 a__isNat(X:S) -> isNat(X:S) 15.31/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatIList(zeros) -> tt 15.31/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 a__isNatIListKind(nil) -> tt 15.31/15.83 a__isNatIListKind(zeros) -> tt 15.31/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.83 a__isNatKind(0) -> tt 15.31/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatList(nil) -> tt 15.31/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.83 a__length(nil) -> 0 15.31/15.83 a__length(X:S) -> length(X:S) 15.31/15.83 a__zeros -> cons(0,zeros) 15.31/15.83 a__zeros -> zeros 15.31/15.83 mark(0) -> 0 15.31/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.83 mark(nil) -> nil 15.31/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.83 mark(tt) -> tt 15.31/15.83 mark(zeros) -> a__zeros 15.31/15.83 ->Interpretation type: 15.31/15.83 Linear 15.31/15.83 ->Coefficients: 15.31/15.83 Natural Numbers 15.31/15.83 ->Dimension: 15.31/15.83 1 15.31/15.83 ->Bound: 15.31/15.83 2 15.31/15.83 ->Interpretation: 15.31/15.83 15.31/15.83 [a__U11](X1,X2) = X1 + X2 + 2 15.31/15.83 [a__U12](X) = X + 2 15.31/15.83 [a__U21](X1,X2) = X1 + X2 15.31/15.83 [a__U22](X) = X 15.31/15.83 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.83 [a__U32](X) = X + 1 15.31/15.83 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.31/15.83 [a__U42](X1,X2) = X1 + 2.X2 + 1 15.31/15.83 [a__U43](X) = X 15.31/15.83 [a__U51](X1,X2,X3) = X1 + X2 + X3 + 1 15.31/15.83 [a__U52](X1,X2) = X1 + X2 + 1 15.31/15.83 [a__U53](X) = X 15.31/15.83 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.83 [a__and](X1,X2) = X1 + X2 15.31/15.83 [a__isNat](X) = X + 2 15.31/15.83 [a__isNatIList](X) = 2.X + 2 15.31/15.83 [a__isNatIListKind](X) = 2 15.31/15.83 [a__isNatKind](X) = 2 15.31/15.83 [a__isNatList](X) = X + 1 15.31/15.83 [a__length](X) = X + 2 15.31/15.83 [a__zeros] = 2 15.31/15.83 [mark](X) = X + 2 15.31/15.83 [0] = 0 15.31/15.83 [U11](X1,X2) = X1 + X2 + 2 15.31/15.83 [U12](X) = X + 2 15.31/15.83 [U21](X1,X2) = X1 + X2 15.31/15.83 [U22](X) = X 15.31/15.83 [U31](X1,X2) = X1 + 2.X2 15.31/15.83 [U32](X) = X + 1 15.31/15.83 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.31/15.83 [U42](X1,X2) = X1 + 2.X2 + 1 15.31/15.83 [U43](X) = X 15.31/15.83 [U51](X1,X2,X3) = X1 + X2 + X3 + 1 15.31/15.83 [U52](X1,X2) = X1 + X2 + 1 15.31/15.83 [U53](X) = X 15.31/15.83 [U61](X1,X2) = X1 + X2 + 2 15.31/15.83 [and](X1,X2) = X1 + X2 15.31/15.83 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.83 [fSNonEmpty] = 0 15.31/15.83 [isNat](X) = X + 1 15.31/15.83 [isNatIList](X) = 2.X + 2 15.31/15.83 [isNatIListKind](X) = 0 15.31/15.83 [isNatKind](X) = 0 15.31/15.83 [isNatList](X) = X + 1 15.31/15.83 [length](X) = X + 2 15.31/15.83 [nil] = 2 15.31/15.83 [s](X) = X 15.31/15.83 [tt] = 2 15.31/15.83 [zeros] = 0 15.31/15.83 [A__U11](X1,X2) = 0 15.31/15.83 [A__U12](X) = 0 15.31/15.83 [A__U21](X1,X2) = 0 15.31/15.83 [A__U22](X) = 0 15.31/15.83 [A__U31](X1,X2) = 0 15.31/15.83 [A__U32](X) = 0 15.31/15.83 [A__U41](X1,X2,X3) = 0 15.31/15.83 [A__U42](X1,X2) = 0 15.31/15.83 [A__U43](X) = 0 15.31/15.83 [A__U51](X1,X2,X3) = 0 15.31/15.83 [A__U52](X1,X2) = 0 15.31/15.83 [A__U53](X) = 0 15.31/15.83 [A__U61](X1,X2) = 0 15.31/15.83 [A__AND](X1,X2) = 2.X2 + 2 15.31/15.83 [A__ISNAT](X) = 0 15.31/15.83 [A__ISNATILIST](X) = 0 15.31/15.83 [A__ISNATILISTKIND](X) = 2 15.31/15.83 [A__ISNATKIND](X) = 2 15.31/15.83 [A__ISNATLIST](X) = 0 15.31/15.83 [A__LENGTH](X) = 0 15.31/15.83 [A__ZEROS] = 0 15.31/15.83 [MARK](X) = 2.X + 2 15.31/15.83 15.31/15.83 Problem 1: 15.31/15.83 15.31/15.83 SCC Processor: 15.31/15.83 -> Pairs: 15.31/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.83 MARK(length(X:S)) -> MARK(X:S) 15.31/15.83 MARK(s(X:S)) -> MARK(X:S) 15.31/15.83 -> Rules: 15.31/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.83 a__U12(tt) -> tt 15.31/15.83 a__U12(X:S) -> U12(X:S) 15.31/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.83 a__U22(tt) -> tt 15.31/15.83 a__U22(X:S) -> U22(X:S) 15.31/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.83 a__U32(tt) -> tt 15.31/15.83 a__U32(X:S) -> U32(X:S) 15.31/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.83 a__U43(tt) -> tt 15.31/15.83 a__U43(X:S) -> U43(X:S) 15.31/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.83 a__U53(tt) -> tt 15.31/15.83 a__U53(X:S) -> U53(X:S) 15.31/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.83 a__and(tt,X:S) -> mark(X:S) 15.31/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.83 a__isNat(0) -> tt 15.31/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.83 a__isNat(X:S) -> isNat(X:S) 15.31/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatIList(zeros) -> tt 15.31/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 a__isNatIListKind(nil) -> tt 15.31/15.83 a__isNatIListKind(zeros) -> tt 15.31/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.83 a__isNatKind(0) -> tt 15.31/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatList(nil) -> tt 15.31/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.83 a__length(nil) -> 0 15.31/15.83 a__length(X:S) -> length(X:S) 15.31/15.83 a__zeros -> cons(0,zeros) 15.31/15.83 a__zeros -> zeros 15.31/15.83 mark(0) -> 0 15.31/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.83 mark(nil) -> nil 15.31/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.83 mark(tt) -> tt 15.31/15.83 mark(zeros) -> a__zeros 15.31/15.83 ->Strongly Connected Components: 15.31/15.83 ->->Cycle: 15.31/15.83 ->->-> Pairs: 15.31/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.83 MARK(length(X:S)) -> MARK(X:S) 15.31/15.83 MARK(s(X:S)) -> MARK(X:S) 15.31/15.83 ->->-> Rules: 15.31/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.83 a__U12(tt) -> tt 15.31/15.83 a__U12(X:S) -> U12(X:S) 15.31/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.83 a__U22(tt) -> tt 15.31/15.83 a__U22(X:S) -> U22(X:S) 15.31/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.83 a__U32(tt) -> tt 15.31/15.83 a__U32(X:S) -> U32(X:S) 15.31/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.83 a__U43(tt) -> tt 15.31/15.83 a__U43(X:S) -> U43(X:S) 15.31/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.83 a__U53(tt) -> tt 15.31/15.83 a__U53(X:S) -> U53(X:S) 15.31/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.83 a__and(tt,X:S) -> mark(X:S) 15.31/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.83 a__isNat(0) -> tt 15.31/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.83 a__isNat(X:S) -> isNat(X:S) 15.31/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatIList(zeros) -> tt 15.31/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 a__isNatIListKind(nil) -> tt 15.31/15.83 a__isNatIListKind(zeros) -> tt 15.31/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.83 a__isNatKind(0) -> tt 15.31/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatList(nil) -> tt 15.31/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.83 a__length(nil) -> 0 15.31/15.83 a__length(X:S) -> length(X:S) 15.31/15.83 a__zeros -> cons(0,zeros) 15.31/15.83 a__zeros -> zeros 15.31/15.83 mark(0) -> 0 15.31/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.83 mark(nil) -> nil 15.31/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.83 mark(tt) -> tt 15.31/15.83 mark(zeros) -> a__zeros 15.31/15.83 15.31/15.83 Problem 1: 15.31/15.83 15.31/15.83 Reduction Pairs Processor: 15.31/15.83 -> Pairs: 15.31/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 MARK(U12(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.83 MARK(length(X:S)) -> MARK(X:S) 15.31/15.83 MARK(s(X:S)) -> MARK(X:S) 15.31/15.83 -> Rules: 15.31/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.83 a__U12(tt) -> tt 15.31/15.83 a__U12(X:S) -> U12(X:S) 15.31/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.83 a__U22(tt) -> tt 15.31/15.83 a__U22(X:S) -> U22(X:S) 15.31/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.83 a__U32(tt) -> tt 15.31/15.83 a__U32(X:S) -> U32(X:S) 15.31/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.83 a__U43(tt) -> tt 15.31/15.83 a__U43(X:S) -> U43(X:S) 15.31/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.83 a__U53(tt) -> tt 15.31/15.83 a__U53(X:S) -> U53(X:S) 15.31/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.83 a__and(tt,X:S) -> mark(X:S) 15.31/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.83 a__isNat(0) -> tt 15.31/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.83 a__isNat(X:S) -> isNat(X:S) 15.31/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatIList(zeros) -> tt 15.31/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 a__isNatIListKind(nil) -> tt 15.31/15.83 a__isNatIListKind(zeros) -> tt 15.31/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.83 a__isNatKind(0) -> tt 15.31/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatList(nil) -> tt 15.31/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.83 a__length(nil) -> 0 15.31/15.83 a__length(X:S) -> length(X:S) 15.31/15.83 a__zeros -> cons(0,zeros) 15.31/15.83 a__zeros -> zeros 15.31/15.83 mark(0) -> 0 15.31/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.83 mark(nil) -> nil 15.31/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.83 mark(tt) -> tt 15.31/15.83 mark(zeros) -> a__zeros 15.31/15.83 -> Usable rules: 15.31/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.83 a__U12(tt) -> tt 15.31/15.83 a__U12(X:S) -> U12(X:S) 15.31/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.83 a__U22(tt) -> tt 15.31/15.83 a__U22(X:S) -> U22(X:S) 15.31/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.83 a__U32(tt) -> tt 15.31/15.83 a__U32(X:S) -> U32(X:S) 15.31/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.83 a__U43(tt) -> tt 15.31/15.83 a__U43(X:S) -> U43(X:S) 15.31/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.83 a__U53(tt) -> tt 15.31/15.83 a__U53(X:S) -> U53(X:S) 15.31/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.83 a__and(tt,X:S) -> mark(X:S) 15.31/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.83 a__isNat(0) -> tt 15.31/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.83 a__isNat(X:S) -> isNat(X:S) 15.31/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatIList(zeros) -> tt 15.31/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 a__isNatIListKind(nil) -> tt 15.31/15.83 a__isNatIListKind(zeros) -> tt 15.31/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.83 a__isNatKind(0) -> tt 15.31/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatList(nil) -> tt 15.31/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.83 a__length(nil) -> 0 15.31/15.83 a__length(X:S) -> length(X:S) 15.31/15.83 a__zeros -> cons(0,zeros) 15.31/15.83 a__zeros -> zeros 15.31/15.83 mark(0) -> 0 15.31/15.83 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.83 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.83 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.83 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.83 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.83 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.83 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.83 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.83 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.83 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.83 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.83 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.83 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.83 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.83 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.83 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.83 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.83 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.83 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.83 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.83 mark(nil) -> nil 15.31/15.83 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.83 mark(tt) -> tt 15.31/15.83 mark(zeros) -> a__zeros 15.31/15.83 ->Interpretation type: 15.31/15.83 Linear 15.31/15.83 ->Coefficients: 15.31/15.83 Natural Numbers 15.31/15.83 ->Dimension: 15.31/15.83 1 15.31/15.83 ->Bound: 15.31/15.83 2 15.31/15.83 ->Interpretation: 15.31/15.83 15.31/15.83 [a__U11](X1,X2) = X1 + X2 + 2 15.31/15.83 [a__U12](X) = X + 2 15.31/15.83 [a__U21](X1,X2) = X1 + X2 15.31/15.83 [a__U22](X) = X 15.31/15.83 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.83 [a__U32](X) = X 15.31/15.83 [a__U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.83 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.83 [a__U43](X) = X + 2 15.31/15.83 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.83 [a__U52](X1,X2) = X1 + 2.X2 + 2 15.31/15.83 [a__U53](X) = X + 2 15.31/15.83 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.83 [a__and](X1,X2) = X1 + X2 15.31/15.83 [a__isNat](X) = X + 2 15.31/15.83 [a__isNatIList](X) = 2.X + 2 15.31/15.83 [a__isNatIListKind](X) = 2 15.31/15.83 [a__isNatKind](X) = 2 15.31/15.83 [a__isNatList](X) = X + 2 15.31/15.83 [a__length](X) = X + 2 15.31/15.83 [a__zeros] = 2 15.31/15.83 [mark](X) = X + 2 15.31/15.83 [0] = 0 15.31/15.83 [U11](X1,X2) = X1 + X2 + 2 15.31/15.83 [U12](X) = X + 2 15.31/15.83 [U21](X1,X2) = X1 + X2 15.31/15.83 [U22](X) = X 15.31/15.83 [U31](X1,X2) = X1 + 2.X2 15.31/15.83 [U32](X) = X 15.31/15.83 [U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.83 [U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.83 [U43](X) = X + 2 15.31/15.83 [U51](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.83 [U52](X1,X2) = X1 + 2.X2 + 2 15.31/15.83 [U53](X) = X + 2 15.31/15.83 [U61](X1,X2) = X1 + X2 + 2 15.31/15.83 [and](X1,X2) = X1 + X2 15.31/15.83 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.83 [fSNonEmpty] = 0 15.31/15.83 [isNat](X) = X 15.31/15.83 [isNatIList](X) = 2.X + 2 15.31/15.83 [isNatIListKind](X) = 0 15.31/15.83 [isNatKind](X) = 0 15.31/15.83 [isNatList](X) = X + 2 15.31/15.83 [length](X) = X + 2 15.31/15.83 [nil] = 2 15.31/15.83 [s](X) = X 15.31/15.83 [tt] = 2 15.31/15.83 [zeros] = 0 15.31/15.83 [A__U11](X1,X2) = 0 15.31/15.83 [A__U12](X) = 0 15.31/15.83 [A__U21](X1,X2) = 0 15.31/15.83 [A__U22](X) = 0 15.31/15.83 [A__U31](X1,X2) = 0 15.31/15.83 [A__U32](X) = 0 15.31/15.83 [A__U41](X1,X2,X3) = 0 15.31/15.83 [A__U42](X1,X2) = 0 15.31/15.83 [A__U43](X) = 0 15.31/15.83 [A__U51](X1,X2,X3) = 0 15.31/15.83 [A__U52](X1,X2) = 0 15.31/15.83 [A__U53](X) = 0 15.31/15.83 [A__U61](X1,X2) = 0 15.31/15.83 [A__AND](X1,X2) = X1 + 2.X2 15.31/15.83 [A__ISNAT](X) = 0 15.31/15.83 [A__ISNATILIST](X) = 0 15.31/15.83 [A__ISNATILISTKIND](X) = 2 15.31/15.83 [A__ISNATKIND](X) = 2 15.31/15.83 [A__ISNATLIST](X) = 0 15.31/15.83 [A__LENGTH](X) = 0 15.31/15.83 [A__ZEROS] = 0 15.31/15.83 [MARK](X) = 2.X + 2 15.31/15.83 15.31/15.83 Problem 1: 15.31/15.83 15.31/15.83 SCC Processor: 15.31/15.83 -> Pairs: 15.31/15.83 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.83 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.83 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.83 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.83 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.83 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.83 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.83 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.83 MARK(length(X:S)) -> MARK(X:S) 15.31/15.83 MARK(s(X:S)) -> MARK(X:S) 15.31/15.83 -> Rules: 15.31/15.83 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.83 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.83 a__U12(tt) -> tt 15.31/15.83 a__U12(X:S) -> U12(X:S) 15.31/15.83 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.83 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.83 a__U22(tt) -> tt 15.31/15.83 a__U22(X:S) -> U22(X:S) 15.31/15.83 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.83 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.83 a__U32(tt) -> tt 15.31/15.83 a__U32(X:S) -> U32(X:S) 15.31/15.83 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.83 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.83 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.83 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.83 a__U43(tt) -> tt 15.31/15.83 a__U43(X:S) -> U43(X:S) 15.31/15.83 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.83 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.83 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.83 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.83 a__U53(tt) -> tt 15.31/15.83 a__U53(X:S) -> U53(X:S) 15.31/15.83 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.83 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.83 a__and(tt,X:S) -> mark(X:S) 15.31/15.83 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.83 a__isNat(0) -> tt 15.31/15.83 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.83 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.83 a__isNat(X:S) -> isNat(X:S) 15.31/15.83 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatIList(zeros) -> tt 15.31/15.83 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.83 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.83 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.83 a__isNatIListKind(nil) -> tt 15.31/15.83 a__isNatIListKind(zeros) -> tt 15.31/15.83 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.83 a__isNatKind(0) -> tt 15.31/15.83 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.83 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.83 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.83 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.83 a__isNatList(nil) -> tt 15.31/15.83 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.83 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Strongly Connected Components: 15.31/15.84 ->->Cycle: 15.31/15.84 ->->-> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 ->->-> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 15.31/15.84 Problem 1: 15.31/15.84 15.31/15.84 Reduction Pairs Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U21(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 -> Usable rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Interpretation type: 15.31/15.84 Linear 15.31/15.84 ->Coefficients: 15.31/15.84 Natural Numbers 15.31/15.84 ->Dimension: 15.31/15.84 1 15.31/15.84 ->Bound: 15.31/15.84 2 15.31/15.84 ->Interpretation: 15.31/15.84 15.31/15.84 [a__U11](X1,X2) = X2 + 2 15.31/15.84 [a__U12](X) = X 15.31/15.84 [a__U21](X1,X2) = X1 + X2 + 2 15.31/15.84 [a__U22](X) = X + 2 15.31/15.84 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.84 [a__U32](X) = X + 2 15.31/15.84 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.31/15.84 [a__U42](X1,X2) = X1 + 2.X2 15.31/15.84 [a__U43](X) = X 15.31/15.84 [a__U51](X1,X2,X3) = X1 + X2 + X3 15.31/15.84 [a__U52](X1,X2) = X1 + X2 15.31/15.84 [a__U53](X) = X + 1 15.31/15.84 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.84 [a__and](X1,X2) = X1 + X2 15.31/15.84 [a__isNat](X) = X + 2 15.31/15.84 [a__isNatIList](X) = 2.X + 2 15.31/15.84 [a__isNatIListKind](X) = 2 15.31/15.84 [a__isNatKind](X) = 2 15.31/15.84 [a__isNatList](X) = X 15.31/15.84 [a__length](X) = X 15.31/15.84 [a__zeros] = 2 15.31/15.84 [mark](X) = X + 2 15.31/15.84 [0] = 0 15.31/15.84 [U11](X1,X2) = X2 15.31/15.84 [U12](X) = X 15.31/15.84 [U21](X1,X2) = X1 + X2 + 2 15.31/15.84 [U22](X) = X + 2 15.31/15.84 [U31](X1,X2) = X1 + 2.X2 15.31/15.84 [U32](X) = X + 2 15.31/15.84 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.31/15.84 [U42](X1,X2) = X1 + 2.X2 15.31/15.84 [U43](X) = X 15.31/15.84 [U51](X1,X2,X3) = X1 + X2 + X3 15.31/15.84 [U52](X1,X2) = X1 + X2 15.31/15.84 [U53](X) = X + 1 15.31/15.84 [U61](X1,X2) = X1 + X2 + 2 15.31/15.84 [and](X1,X2) = X1 + X2 15.31/15.84 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [fSNonEmpty] = 0 15.31/15.84 [isNat](X) = X 15.31/15.84 [isNatIList](X) = 2.X + 2 15.31/15.84 [isNatIListKind](X) = 0 15.31/15.84 [isNatKind](X) = 0 15.31/15.84 [isNatList](X) = X 15.31/15.84 [length](X) = X 15.31/15.84 [nil] = 2 15.31/15.84 [s](X) = X + 2 15.31/15.84 [tt] = 2 15.31/15.84 [zeros] = 0 15.31/15.84 [A__U11](X1,X2) = 0 15.31/15.84 [A__U12](X) = 0 15.31/15.84 [A__U21](X1,X2) = 0 15.31/15.84 [A__U22](X) = 0 15.31/15.84 [A__U31](X1,X2) = 0 15.31/15.84 [A__U32](X) = 0 15.31/15.84 [A__U41](X1,X2,X3) = 0 15.31/15.84 [A__U42](X1,X2) = 0 15.31/15.84 [A__U43](X) = 0 15.31/15.84 [A__U51](X1,X2,X3) = 0 15.31/15.84 [A__U52](X1,X2) = 0 15.31/15.84 [A__U53](X) = 0 15.31/15.84 [A__U61](X1,X2) = 0 15.31/15.84 [A__AND](X1,X2) = 2.X2 + 2 15.31/15.84 [A__ISNAT](X) = 0 15.31/15.84 [A__ISNATILIST](X) = 0 15.31/15.84 [A__ISNATILISTKIND](X) = 2 15.31/15.84 [A__ISNATKIND](X) = 2 15.31/15.84 [A__ISNATLIST](X) = 0 15.31/15.84 [A__LENGTH](X) = 0 15.31/15.84 [A__ZEROS] = 0 15.31/15.84 [MARK](X) = 2.X + 2 15.31/15.84 15.31/15.84 Problem 1: 15.31/15.84 15.31/15.84 SCC Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Strongly Connected Components: 15.31/15.84 ->->Cycle: 15.31/15.84 ->->-> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 ->->-> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 15.31/15.84 Problem 1: 15.31/15.84 15.31/15.84 Reduction Pairs Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 -> Usable rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Interpretation type: 15.31/15.84 Linear 15.31/15.84 ->Coefficients: 15.31/15.84 Natural Numbers 15.31/15.84 ->Dimension: 15.31/15.84 1 15.31/15.84 ->Bound: 15.31/15.84 2 15.31/15.84 ->Interpretation: 15.31/15.84 15.31/15.84 [a__U11](X1,X2) = 2.X2 + 2 15.31/15.84 [a__U12](X) = X + 2 15.31/15.84 [a__U21](X1,X2) = X2 15.31/15.84 [a__U22](X) = X 15.31/15.84 [a__U31](X1,X2) = X1 + X2 + 2 15.31/15.84 [a__U32](X) = X + 2 15.31/15.84 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.84 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [a__U43](X) = X 15.31/15.84 [a__U51](X1,X2,X3) = X1 + X2 + X3 15.31/15.84 [a__U52](X1,X2) = X1 + X2 15.31/15.84 [a__U53](X) = X 15.31/15.84 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [a__and](X1,X2) = X1 + X2 15.31/15.84 [a__isNat](X) = X 15.31/15.84 [a__isNatIList](X) = 2.X + 2 15.31/15.84 [a__isNatIListKind](X) = X 15.31/15.84 [a__isNatKind](X) = X 15.31/15.84 [a__isNatList](X) = X 15.31/15.84 [a__length](X) = 2.X + 2 15.31/15.84 [a__zeros] = 0 15.31/15.84 [mark](X) = X 15.31/15.84 [0] = 0 15.31/15.84 [U11](X1,X2) = 2.X2 + 2 15.31/15.84 [U12](X) = X + 2 15.31/15.84 [U21](X1,X2) = X2 15.31/15.84 [U22](X) = X 15.31/15.84 [U31](X1,X2) = X1 + X2 + 2 15.31/15.84 [U32](X) = X + 2 15.31/15.84 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.84 [U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [U43](X) = X 15.31/15.84 [U51](X1,X2,X3) = X1 + X2 + X3 15.31/15.84 [U52](X1,X2) = X1 + X2 15.31/15.84 [U53](X) = X 15.31/15.84 [U61](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [and](X1,X2) = X1 + X2 15.31/15.84 [cons](X1,X2) = 2.X1 + 2.X2 15.31/15.84 [fSNonEmpty] = 0 15.31/15.84 [isNat](X) = X 15.31/15.84 [isNatIList](X) = 2.X + 2 15.31/15.84 [isNatIListKind](X) = X 15.31/15.84 [isNatKind](X) = X 15.31/15.84 [isNatList](X) = X 15.31/15.84 [length](X) = 2.X + 2 15.31/15.84 [nil] = 2 15.31/15.84 [s](X) = X 15.31/15.84 [tt] = 0 15.31/15.84 [zeros] = 0 15.31/15.84 [A__U11](X1,X2) = 0 15.31/15.84 [A__U12](X) = 0 15.31/15.84 [A__U21](X1,X2) = 0 15.31/15.84 [A__U22](X) = 0 15.31/15.84 [A__U31](X1,X2) = 0 15.31/15.84 [A__U32](X) = 0 15.31/15.84 [A__U41](X1,X2,X3) = 0 15.31/15.84 [A__U42](X1,X2) = 0 15.31/15.84 [A__U43](X) = 0 15.31/15.84 [A__U51](X1,X2,X3) = 0 15.31/15.84 [A__U52](X1,X2) = 0 15.31/15.84 [A__U53](X) = 0 15.31/15.84 [A__U61](X1,X2) = 0 15.31/15.84 [A__AND](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.84 [A__ISNAT](X) = 0 15.31/15.84 [A__ISNATILIST](X) = 0 15.31/15.84 [A__ISNATILISTKIND](X) = 2.X + 2 15.31/15.84 [A__ISNATKIND](X) = X + 1 15.31/15.84 [A__ISNATLIST](X) = 0 15.31/15.84 [A__LENGTH](X) = 0 15.31/15.84 [A__ZEROS] = 0 15.31/15.84 [MARK](X) = 2.X + 2 15.31/15.84 15.31/15.84 Problem 1: 15.31/15.84 15.31/15.84 SCC Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Strongly Connected Components: 15.31/15.84 ->->Cycle: 15.31/15.84 ->->-> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 ->->-> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 15.31/15.84 Problem 1: 15.31/15.84 15.31/15.84 Reduction Pairs Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATKIND(length(V1:S)) -> A__ISNATILISTKIND(V1:S) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 -> Usable rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Interpretation type: 15.31/15.84 Linear 15.31/15.84 ->Coefficients: 15.31/15.84 Natural Numbers 15.31/15.84 ->Dimension: 15.31/15.84 1 15.31/15.84 ->Bound: 15.31/15.84 2 15.31/15.84 ->Interpretation: 15.31/15.84 15.31/15.84 [a__U11](X1,X2) = X1 + X2 + 2 15.31/15.84 [a__U12](X) = X + 2 15.31/15.84 [a__U21](X1,X2) = X2 + 2 15.31/15.84 [a__U22](X) = X 15.31/15.84 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.84 [a__U32](X) = X + 1 15.31/15.84 [a__U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.84 [a__U42](X1,X2) = X1 + 2.X2 15.31/15.84 [a__U43](X) = X 15.31/15.84 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 + 1 15.31/15.84 [a__U52](X1,X2) = X1 + X2 + 1 15.31/15.84 [a__U53](X) = X + 2 15.31/15.84 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.84 [a__and](X1,X2) = X1 + X2 15.31/15.84 [a__isNat](X) = X + 2 15.31/15.84 [a__isNatIList](X) = 2.X + 2 15.31/15.84 [a__isNatIListKind](X) = 2 15.31/15.84 [a__isNatKind](X) = 2 15.31/15.84 [a__isNatList](X) = X + 1 15.31/15.84 [a__length](X) = X + 2 15.31/15.84 [a__zeros] = 2 15.31/15.84 [mark](X) = X + 2 15.31/15.84 [0] = 0 15.31/15.84 [U11](X1,X2) = X1 + X2 + 2 15.31/15.84 [U12](X) = X + 2 15.31/15.84 [U21](X1,X2) = X2 15.31/15.84 [U22](X) = X 15.31/15.84 [U31](X1,X2) = X1 + 2.X2 15.31/15.84 [U32](X) = X + 1 15.31/15.84 [U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.84 [U42](X1,X2) = X1 + 2.X2 15.31/15.84 [U43](X) = X 15.31/15.84 [U51](X1,X2,X3) = X1 + X2 + 2.X3 + 1 15.31/15.84 [U52](X1,X2) = X1 + X2 + 1 15.31/15.84 [U53](X) = X + 2 15.31/15.84 [U61](X1,X2) = X1 + X2 + 2 15.31/15.84 [and](X1,X2) = X1 + X2 15.31/15.84 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [fSNonEmpty] = 0 15.31/15.84 [isNat](X) = X 15.31/15.84 [isNatIList](X) = 2.X + 1 15.31/15.84 [isNatIListKind](X) = 0 15.31/15.84 [isNatKind](X) = 1 15.31/15.84 [isNatList](X) = X + 1 15.31/15.84 [length](X) = X + 2 15.31/15.84 [nil] = 2 15.31/15.84 [s](X) = X 15.31/15.84 [tt] = 2 15.31/15.84 [zeros] = 0 15.31/15.84 [A__U11](X1,X2) = 0 15.31/15.84 [A__U12](X) = 0 15.31/15.84 [A__U21](X1,X2) = 0 15.31/15.84 [A__U22](X) = 0 15.31/15.84 [A__U31](X1,X2) = 0 15.31/15.84 [A__U32](X) = 0 15.31/15.84 [A__U41](X1,X2,X3) = 0 15.31/15.84 [A__U42](X1,X2) = 0 15.31/15.84 [A__U43](X) = 0 15.31/15.84 [A__U51](X1,X2,X3) = 0 15.31/15.84 [A__U52](X1,X2) = 0 15.31/15.84 [A__U53](X) = 0 15.31/15.84 [A__U61](X1,X2) = 0 15.31/15.84 [A__AND](X1,X2) = 2.X2 + 1 15.31/15.84 [A__ISNAT](X) = 0 15.31/15.84 [A__ISNATILIST](X) = 0 15.31/15.84 [A__ISNATILISTKIND](X) = 1 15.31/15.84 [A__ISNATKIND](X) = 2 15.31/15.84 [A__ISNATLIST](X) = 0 15.31/15.84 [A__LENGTH](X) = 0 15.31/15.84 [A__ZEROS] = 0 15.31/15.84 [MARK](X) = 2.X + 1 15.31/15.84 15.31/15.84 Problem 1: 15.31/15.84 15.31/15.84 SCC Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(isNatKind(X:S)) -> A__ISNATKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Strongly Connected Components: 15.31/15.84 ->->Cycle: 15.31/15.84 ->->-> Pairs: 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 ->->-> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->->Cycle: 15.31/15.84 ->->-> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 ->->-> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 15.31/15.84 15.31/15.84 The problem is decomposed in 2 subproblems. 15.31/15.84 15.31/15.84 Problem 1.1: 15.31/15.84 15.31/15.84 Subterm Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__ISNATKIND(s(V1:S)) -> A__ISNATKIND(V1:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Projection: 15.31/15.84 pi(A__ISNATKIND) = 1 15.31/15.84 15.31/15.84 Problem 1.1: 15.31/15.84 15.31/15.84 SCC Processor: 15.31/15.84 -> Pairs: 15.31/15.84 Empty 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Strongly Connected Components: 15.31/15.84 There is no strongly connected component 15.31/15.84 15.31/15.84 The problem is finite. 15.31/15.84 15.31/15.84 Problem 1.2: 15.31/15.84 15.31/15.84 Reduction Pairs Processor: 15.31/15.84 -> Pairs: 15.31/15.84 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.84 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 MARK(U22(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.84 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.84 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.84 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.84 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.84 MARK(length(X:S)) -> MARK(X:S) 15.31/15.84 MARK(s(X:S)) -> MARK(X:S) 15.31/15.84 -> Rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 -> Usable rules: 15.31/15.84 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.84 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.84 a__U12(tt) -> tt 15.31/15.84 a__U12(X:S) -> U12(X:S) 15.31/15.84 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.84 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.84 a__U22(tt) -> tt 15.31/15.84 a__U22(X:S) -> U22(X:S) 15.31/15.84 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.84 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.84 a__U32(tt) -> tt 15.31/15.84 a__U32(X:S) -> U32(X:S) 15.31/15.84 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.84 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.84 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.84 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.84 a__U43(tt) -> tt 15.31/15.84 a__U43(X:S) -> U43(X:S) 15.31/15.84 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.84 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.84 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.84 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.84 a__U53(tt) -> tt 15.31/15.84 a__U53(X:S) -> U53(X:S) 15.31/15.84 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.84 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.84 a__and(tt,X:S) -> mark(X:S) 15.31/15.84 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.84 a__isNat(0) -> tt 15.31/15.84 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.84 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.84 a__isNat(X:S) -> isNat(X:S) 15.31/15.84 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatIList(zeros) -> tt 15.31/15.84 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.84 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.84 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.84 a__isNatIListKind(nil) -> tt 15.31/15.84 a__isNatIListKind(zeros) -> tt 15.31/15.84 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.84 a__isNatKind(0) -> tt 15.31/15.84 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.84 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.84 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.84 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.84 a__isNatList(nil) -> tt 15.31/15.84 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.84 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.84 a__length(nil) -> 0 15.31/15.84 a__length(X:S) -> length(X:S) 15.31/15.84 a__zeros -> cons(0,zeros) 15.31/15.84 a__zeros -> zeros 15.31/15.84 mark(0) -> 0 15.31/15.84 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.84 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.84 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.84 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.84 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.84 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.84 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.84 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.84 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.84 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.84 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.84 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.84 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.84 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.84 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.84 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.84 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.84 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.84 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.84 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.84 mark(nil) -> nil 15.31/15.84 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.84 mark(tt) -> tt 15.31/15.84 mark(zeros) -> a__zeros 15.31/15.84 ->Interpretation type: 15.31/15.84 Linear 15.31/15.84 ->Coefficients: 15.31/15.84 Natural Numbers 15.31/15.84 ->Dimension: 15.31/15.84 1 15.31/15.84 ->Bound: 15.31/15.84 2 15.31/15.84 ->Interpretation: 15.31/15.84 15.31/15.84 [a__U11](X1,X2) = X1 + X2 + 1 15.31/15.84 [a__U12](X) = X + 2 15.31/15.84 [a__U21](X1,X2) = X1 + X2 + 1 15.31/15.84 [a__U22](X) = X + 1 15.31/15.84 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.84 [a__U32](X) = X + 2 15.31/15.84 [a__U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.84 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [a__U43](X) = X + 2 15.31/15.84 [a__U51](X1,X2,X3) = X1 + X2 + 2.X3 15.31/15.84 [a__U52](X1,X2) = X1 + 2.X2 15.31/15.84 [a__U53](X) = X 15.31/15.84 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.84 [a__and](X1,X2) = X1 + X2 15.31/15.84 [a__isNat](X) = X + 2 15.31/15.84 [a__isNatIList](X) = 2.X + 2 15.31/15.84 [a__isNatIListKind](X) = 2 15.31/15.84 [a__isNatKind](X) = 2 15.31/15.84 [a__isNatList](X) = X 15.31/15.84 [a__length](X) = X + 1 15.31/15.84 [a__zeros] = 2 15.31/15.84 [mark](X) = X + 2 15.31/15.84 [0] = 0 15.31/15.84 [U11](X1,X2) = X1 + X2 + 1 15.31/15.84 [U12](X) = X + 2 15.31/15.84 [U21](X1,X2) = X1 + X2 + 1 15.31/15.84 [U22](X) = X + 1 15.31/15.84 [U31](X1,X2) = X1 + 2.X2 15.31/15.84 [U32](X) = X + 2 15.31/15.84 [U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.84 [U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [U43](X) = X + 2 15.31/15.84 [U51](X1,X2,X3) = X1 + X2 + 2.X3 15.31/15.84 [U52](X1,X2) = X1 + 2.X2 15.31/15.84 [U53](X) = X 15.31/15.84 [U61](X1,X2) = X1 + X2 + 2 15.31/15.84 [and](X1,X2) = X1 + X2 15.31/15.84 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.84 [fSNonEmpty] = 0 15.31/15.84 [isNat](X) = X 15.31/15.84 [isNatIList](X) = 2.X + 2 15.31/15.84 [isNatIListKind](X) = 0 15.31/15.84 [isNatKind](X) = 1 15.31/15.84 [isNatList](X) = X 15.31/15.84 [length](X) = X + 1 15.31/15.84 [nil] = 2 15.31/15.85 [s](X) = X + 1 15.31/15.85 [tt] = 2 15.31/15.85 [zeros] = 0 15.31/15.85 [A__U11](X1,X2) = 0 15.31/15.85 [A__U12](X) = 0 15.31/15.85 [A__U21](X1,X2) = 0 15.31/15.85 [A__U22](X) = 0 15.31/15.85 [A__U31](X1,X2) = 0 15.31/15.85 [A__U32](X) = 0 15.31/15.85 [A__U41](X1,X2,X3) = 0 15.31/15.85 [A__U42](X1,X2) = 0 15.31/15.85 [A__U43](X) = 0 15.31/15.85 [A__U51](X1,X2,X3) = 0 15.31/15.85 [A__U52](X1,X2) = 0 15.31/15.85 [A__U53](X) = 0 15.31/15.85 [A__U61](X1,X2) = 0 15.31/15.85 [A__AND](X1,X2) = 2.X2 + 2 15.31/15.85 [A__ISNAT](X) = 0 15.31/15.85 [A__ISNATILIST](X) = 0 15.31/15.85 [A__ISNATILISTKIND](X) = 2 15.31/15.85 [A__ISNATKIND](X) = 0 15.31/15.85 [A__ISNATLIST](X) = 0 15.31/15.85 [A__LENGTH](X) = 0 15.31/15.85 [A__ZEROS] = 0 15.31/15.85 [MARK](X) = 2.X + 2 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 SCC Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Strongly Connected Components: 15.31/15.85 ->->Cycle: 15.31/15.85 ->->-> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 ->->-> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 Reduction Pairs Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U31(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 -> Usable rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Interpretation type: 15.31/15.85 Linear 15.31/15.85 ->Coefficients: 15.31/15.85 Natural Numbers 15.31/15.85 ->Dimension: 15.31/15.85 1 15.31/15.85 ->Bound: 15.31/15.85 2 15.31/15.85 ->Interpretation: 15.31/15.85 15.31/15.85 [a__U11](X1,X2) = 1 15.31/15.85 [a__U12](X) = X 15.31/15.85 [a__U21](X1,X2) = 1 15.31/15.85 [a__U22](X) = 1 15.31/15.85 [a__U31](X1,X2) = X1 + 2.X2 + 1 15.31/15.85 [a__U32](X) = X + 1 15.31/15.85 [a__U41](X1,X2,X3) = 2.X1 + 2.X3 + 2 15.31/15.85 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.85 [a__U43](X) = X + 1 15.31/15.85 [a__U51](X1,X2,X3) = X1 15.31/15.85 [a__U52](X1,X2) = X1 15.31/15.85 [a__U53](X) = X 15.31/15.85 [a__U61](X1,X2) = 2.X1 + 2.X2 + 1 15.31/15.85 [a__and](X1,X2) = X1 + 2.X2 15.31/15.85 [a__isNat](X) = 1 15.31/15.85 [a__isNatIList](X) = 2.X + 2 15.31/15.85 [a__isNatIListKind](X) = 1 15.31/15.85 [a__isNatKind](X) = 1 15.31/15.85 [a__isNatList](X) = 1 15.31/15.85 [a__length](X) = X + 2 15.31/15.85 [a__zeros] = 1 15.31/15.85 [mark](X) = 2.X + 1 15.31/15.85 [0] = 0 15.31/15.85 [U11](X1,X2) = 1 15.31/15.85 [U12](X) = X 15.31/15.85 [U21](X1,X2) = 1 15.31/15.85 [U22](X) = 1 15.31/15.85 [U31](X1,X2) = X1 + 2.X2 + 1 15.31/15.85 [U32](X) = X + 1 15.31/15.85 [U41](X1,X2,X3) = 2.X1 + 2.X3 + 2 15.31/15.85 [U42](X1,X2) = X1 + X2 + 2 15.31/15.85 [U43](X) = X + 1 15.31/15.85 [U51](X1,X2,X3) = X1 15.31/15.85 [U52](X1,X2) = X1 15.31/15.85 [U53](X) = X 15.31/15.85 [U61](X1,X2) = 2.X1 + X2 + 1 15.31/15.85 [and](X1,X2) = X1 + X2 15.31/15.85 [cons](X1,X2) = 2.X1 + 2.X2 + 1 15.31/15.85 [fSNonEmpty] = 0 15.31/15.85 [isNat](X) = 0 15.31/15.85 [isNatIList](X) = 2.X + 2 15.31/15.85 [isNatIListKind](X) = 0 15.31/15.85 [isNatKind](X) = 0 15.31/15.85 [isNatList](X) = 1 15.31/15.85 [length](X) = X + 2 15.31/15.85 [nil] = 0 15.31/15.85 [s](X) = X 15.31/15.85 [tt] = 1 15.31/15.85 [zeros] = 0 15.31/15.85 [A__U11](X1,X2) = 0 15.31/15.85 [A__U12](X) = 0 15.31/15.85 [A__U21](X1,X2) = 0 15.31/15.85 [A__U22](X) = 0 15.31/15.85 [A__U31](X1,X2) = 0 15.31/15.85 [A__U32](X) = 0 15.31/15.85 [A__U41](X1,X2,X3) = 0 15.31/15.85 [A__U42](X1,X2) = 0 15.31/15.85 [A__U43](X) = 0 15.31/15.85 [A__U51](X1,X2,X3) = 0 15.31/15.85 [A__U52](X1,X2) = 0 15.31/15.85 [A__U53](X) = 0 15.31/15.85 [A__U61](X1,X2) = 0 15.31/15.85 [A__AND](X1,X2) = X1 + 2.X2 15.31/15.85 [A__ISNAT](X) = 0 15.31/15.85 [A__ISNATILIST](X) = 0 15.31/15.85 [A__ISNATILISTKIND](X) = 1 15.31/15.85 [A__ISNATKIND](X) = 0 15.31/15.85 [A__ISNATLIST](X) = 0 15.31/15.85 [A__LENGTH](X) = 0 15.31/15.85 [A__ZEROS] = 0 15.31/15.85 [MARK](X) = 2.X + 1 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 SCC Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Strongly Connected Components: 15.31/15.85 ->->Cycle: 15.31/15.85 ->->-> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 ->->-> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 Reduction Pairs Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U32(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 -> Usable rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Interpretation type: 15.31/15.85 Linear 15.31/15.85 ->Coefficients: 15.31/15.85 Natural Numbers 15.31/15.85 ->Dimension: 15.31/15.85 1 15.31/15.85 ->Bound: 15.31/15.85 2 15.31/15.85 ->Interpretation: 15.31/15.85 15.31/15.85 [a__U11](X1,X2) = 2.X2 + 2 15.31/15.85 [a__U12](X) = 2.X + 2 15.31/15.85 [a__U21](X1,X2) = X1 15.31/15.85 [a__U22](X) = 0 15.31/15.85 [a__U31](X1,X2) = X1 + X2 + 2 15.31/15.85 [a__U32](X) = X + 2 15.31/15.85 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.85 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [a__U43](X) = X 15.31/15.85 [a__U51](X1,X2,X3) = X1 + X2 + X3 15.31/15.85 [a__U52](X1,X2) = X1 + X2 15.31/15.85 [a__U53](X) = X 15.31/15.85 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.31/15.85 [a__and](X1,X2) = X1 + X2 15.31/15.85 [a__isNat](X) = X 15.31/15.85 [a__isNatIList](X) = 2.X + 2 15.31/15.85 [a__isNatIListKind](X) = X 15.31/15.85 [a__isNatKind](X) = X 15.31/15.85 [a__isNatList](X) = X 15.31/15.85 [a__length](X) = 2.X + 2 15.31/15.85 [a__zeros] = 0 15.31/15.85 [mark](X) = X 15.31/15.85 [0] = 0 15.31/15.85 [U11](X1,X2) = 2.X2 + 2 15.31/15.85 [U12](X) = 2.X + 2 15.31/15.85 [U21](X1,X2) = X1 15.31/15.85 [U22](X) = 0 15.31/15.85 [U31](X1,X2) = X1 + X2 + 2 15.31/15.85 [U32](X) = X + 2 15.31/15.85 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.85 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [U43](X) = X 15.31/15.85 [U51](X1,X2,X3) = X1 + X2 + X3 15.31/15.85 [U52](X1,X2) = X1 + X2 15.31/15.85 [U53](X) = X 15.31/15.85 [U61](X1,X2) = X1 + 2.X2 + 2 15.31/15.85 [and](X1,X2) = X1 + X2 15.31/15.85 [cons](X1,X2) = 2.X1 + 2.X2 15.31/15.85 [fSNonEmpty] = 0 15.31/15.85 [isNat](X) = X 15.31/15.85 [isNatIList](X) = 2.X + 2 15.31/15.85 [isNatIListKind](X) = X 15.31/15.85 [isNatKind](X) = X 15.31/15.85 [isNatList](X) = X 15.31/15.85 [length](X) = 2.X + 2 15.31/15.85 [nil] = 2 15.31/15.85 [s](X) = X 15.31/15.85 [tt] = 0 15.31/15.85 [zeros] = 0 15.31/15.85 [A__U11](X1,X2) = 0 15.31/15.85 [A__U12](X) = 0 15.31/15.85 [A__U21](X1,X2) = 0 15.31/15.85 [A__U22](X) = 0 15.31/15.85 [A__U31](X1,X2) = 0 15.31/15.85 [A__U32](X) = 0 15.31/15.85 [A__U41](X1,X2,X3) = 0 15.31/15.85 [A__U42](X1,X2) = 0 15.31/15.85 [A__U43](X) = 0 15.31/15.85 [A__U51](X1,X2,X3) = 0 15.31/15.85 [A__U52](X1,X2) = 0 15.31/15.85 [A__U53](X) = 0 15.31/15.85 [A__U61](X1,X2) = 0 15.31/15.85 [A__AND](X1,X2) = 2.X2 15.31/15.85 [A__ISNAT](X) = 0 15.31/15.85 [A__ISNATILIST](X) = 0 15.31/15.85 [A__ISNATILISTKIND](X) = 2.X 15.31/15.85 [A__ISNATKIND](X) = 0 15.31/15.85 [A__ISNATLIST](X) = 0 15.31/15.85 [A__LENGTH](X) = 0 15.31/15.85 [A__ZEROS] = 0 15.31/15.85 [MARK](X) = 2.X 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 SCC Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Strongly Connected Components: 15.31/15.85 ->->Cycle: 15.31/15.85 ->->-> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 ->->-> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 Reduction Pairs Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U41(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 -> Usable rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Interpretation type: 15.31/15.85 Linear 15.31/15.85 ->Coefficients: 15.31/15.85 Natural Numbers 15.31/15.85 ->Dimension: 15.31/15.85 1 15.31/15.85 ->Bound: 15.31/15.85 2 15.31/15.85 ->Interpretation: 15.31/15.85 15.31/15.85 [a__U11](X1,X2) = 2 15.31/15.85 [a__U12](X) = X 15.31/15.85 [a__U21](X1,X2) = X1 15.31/15.85 [a__U22](X) = 2 15.31/15.85 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.85 [a__U32](X) = X 15.31/15.85 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.85 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [a__U43](X) = X + 2 15.31/15.85 [a__U51](X1,X2,X3) = X1 15.31/15.85 [a__U52](X1,X2) = X1 15.31/15.85 [a__U53](X) = X 15.31/15.85 [a__U61](X1,X2) = X1 + 2.X2 + 2 15.31/15.85 [a__and](X1,X2) = X1 + 2.X2 15.31/15.85 [a__isNat](X) = 2 15.31/15.85 [a__isNatIList](X) = 2.X + 2 15.31/15.85 [a__isNatIListKind](X) = 2 15.31/15.85 [a__isNatKind](X) = 2 15.31/15.85 [a__isNatList](X) = 2 15.31/15.85 [a__length](X) = X + 2 15.31/15.85 [a__zeros] = 2 15.31/15.85 [mark](X) = 2.X + 2 15.31/15.85 [0] = 0 15.31/15.85 [U11](X1,X2) = 1 15.31/15.85 [U12](X) = X 15.31/15.85 [U21](X1,X2) = X1 15.31/15.85 [U22](X) = 2 15.31/15.85 [U31](X1,X2) = X1 + 2.X2 15.31/15.85 [U32](X) = X 15.31/15.85 [U41](X1,X2,X3) = 2.X1 + 2.X2 + X3 + 2 15.31/15.85 [U42](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [U43](X) = X + 2 15.31/15.85 [U51](X1,X2,X3) = X1 15.31/15.85 [U52](X1,X2) = X1 15.31/15.85 [U53](X) = X 15.31/15.85 [U61](X1,X2) = X1 + 2.X2 + 2 15.31/15.85 [and](X1,X2) = X1 + 2.X2 15.31/15.85 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [fSNonEmpty] = 0 15.31/15.85 [isNat](X) = 0 15.31/15.85 [isNatIList](X) = 2.X 15.31/15.85 [isNatIListKind](X) = 0 15.31/15.85 [isNatKind](X) = 0 15.31/15.85 [isNatList](X) = 1 15.31/15.85 [length](X) = X + 2 15.31/15.85 [nil] = 2 15.31/15.85 [s](X) = X 15.31/15.85 [tt] = 2 15.31/15.85 [zeros] = 0 15.31/15.85 [A__U11](X1,X2) = 0 15.31/15.85 [A__U12](X) = 0 15.31/15.85 [A__U21](X1,X2) = 0 15.31/15.85 [A__U22](X) = 0 15.31/15.85 [A__U31](X1,X2) = 0 15.31/15.85 [A__U32](X) = 0 15.31/15.85 [A__U41](X1,X2,X3) = 0 15.31/15.85 [A__U42](X1,X2) = 0 15.31/15.85 [A__U43](X) = 0 15.31/15.85 [A__U51](X1,X2,X3) = 0 15.31/15.85 [A__U52](X1,X2) = 0 15.31/15.85 [A__U53](X) = 0 15.31/15.85 [A__U61](X1,X2) = 0 15.31/15.85 [A__AND](X1,X2) = 2.X2 + 1 15.31/15.85 [A__ISNAT](X) = 0 15.31/15.85 [A__ISNATILIST](X) = 0 15.31/15.85 [A__ISNATILISTKIND](X) = 1 15.31/15.85 [A__ISNATKIND](X) = 0 15.31/15.85 [A__ISNATLIST](X) = 0 15.31/15.85 [A__LENGTH](X) = 0 15.31/15.85 [A__ZEROS] = 0 15.31/15.85 [MARK](X) = 2.X + 1 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 SCC Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Strongly Connected Components: 15.31/15.85 ->->Cycle: 15.31/15.85 ->->-> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 ->->-> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 Reduction Pairs Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U42(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 -> Usable rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Interpretation type: 15.31/15.85 Linear 15.31/15.85 ->Coefficients: 15.31/15.85 Natural Numbers 15.31/15.85 ->Dimension: 15.31/15.85 1 15.31/15.85 ->Bound: 15.31/15.85 2 15.31/15.85 ->Interpretation: 15.31/15.85 15.31/15.85 [a__U11](X1,X2) = 2.X1 15.31/15.85 [a__U12](X) = 2.X 15.31/15.85 [a__U21](X1,X2) = 2.X1 15.31/15.85 [a__U22](X) = 2.X 15.31/15.85 [a__U31](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [a__U32](X) = 2.X + 2 15.31/15.85 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.85 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [a__U43](X) = X 15.31/15.85 [a__U51](X1,X2,X3) = 2.X1 15.31/15.85 [a__U52](X1,X2) = 2.X1 15.31/15.85 [a__U53](X) = 2.X 15.31/15.85 [a__U61](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [a__and](X1,X2) = 2.X1 + 2.X2 15.31/15.85 [a__isNat](X) = 0 15.31/15.85 [a__isNatIList](X) = 2.X + 2 15.31/15.85 [a__isNatIListKind](X) = 0 15.31/15.85 [a__isNatKind](X) = 0 15.31/15.85 [a__isNatList](X) = 0 15.31/15.85 [a__length](X) = X + 2 15.31/15.85 [a__zeros] = 2 15.31/15.85 [mark](X) = 2.X 15.31/15.85 [0] = 0 15.31/15.85 [U11](X1,X2) = 2.X1 15.31/15.85 [U12](X) = 2.X 15.31/15.85 [U21](X1,X2) = 2.X1 15.31/15.85 [U22](X) = 2.X 15.31/15.85 [U31](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [U32](X) = 2.X + 1 15.31/15.85 [U41](X1,X2,X3) = 2.X1 + X2 + X3 + 2 15.31/15.85 [U42](X1,X2) = 2.X1 + X2 + 2 15.31/15.85 [U43](X) = X 15.31/15.85 [U51](X1,X2,X3) = 2.X1 15.31/15.85 [U52](X1,X2) = 2.X1 15.31/15.85 [U53](X) = 2.X 15.31/15.85 [U61](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [and](X1,X2) = 2.X1 + X2 15.31/15.85 [cons](X1,X2) = 2.X1 + 2.X2 15.31/15.85 [fSNonEmpty] = 0 15.31/15.85 [isNat](X) = 0 15.31/15.85 [isNatIList](X) = X + 2 15.31/15.85 [isNatIListKind](X) = 0 15.31/15.85 [isNatKind](X) = 0 15.31/15.85 [isNatList](X) = 0 15.31/15.85 [length](X) = X + 2 15.31/15.85 [nil] = 2 15.31/15.85 [s](X) = X 15.31/15.85 [tt] = 0 15.31/15.85 [zeros] = 1 15.31/15.85 [A__U11](X1,X2) = 0 15.31/15.85 [A__U12](X) = 0 15.31/15.85 [A__U21](X1,X2) = 0 15.31/15.85 [A__U22](X) = 0 15.31/15.85 [A__U31](X1,X2) = 0 15.31/15.85 [A__U32](X) = 0 15.31/15.85 [A__U41](X1,X2,X3) = 0 15.31/15.85 [A__U42](X1,X2) = 0 15.31/15.85 [A__U43](X) = 0 15.31/15.85 [A__U51](X1,X2,X3) = 0 15.31/15.85 [A__U52](X1,X2) = 0 15.31/15.85 [A__U53](X) = 0 15.31/15.85 [A__U61](X1,X2) = 0 15.31/15.85 [A__AND](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.85 [A__ISNAT](X) = 0 15.31/15.85 [A__ISNATILIST](X) = 0 15.31/15.85 [A__ISNATILISTKIND](X) = 2 15.31/15.85 [A__ISNATKIND](X) = 0 15.31/15.85 [A__ISNATLIST](X) = 0 15.31/15.85 [A__LENGTH](X) = 0 15.31/15.85 [A__ZEROS] = 0 15.31/15.85 [MARK](X) = 2.X + 2 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 SCC Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 -> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 ->Strongly Connected Components: 15.31/15.85 ->->Cycle: 15.31/15.85 ->->-> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.85 MARK(length(X:S)) -> MARK(X:S) 15.31/15.85 MARK(s(X:S)) -> MARK(X:S) 15.31/15.85 ->->-> Rules: 15.31/15.85 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.85 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.85 a__U12(tt) -> tt 15.31/15.85 a__U12(X:S) -> U12(X:S) 15.31/15.85 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.85 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.85 a__U22(tt) -> tt 15.31/15.85 a__U22(X:S) -> U22(X:S) 15.31/15.85 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.85 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.85 a__U32(tt) -> tt 15.31/15.85 a__U32(X:S) -> U32(X:S) 15.31/15.85 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.85 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.85 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.85 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.85 a__U43(tt) -> tt 15.31/15.85 a__U43(X:S) -> U43(X:S) 15.31/15.85 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.85 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.85 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.85 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.85 a__U53(tt) -> tt 15.31/15.85 a__U53(X:S) -> U53(X:S) 15.31/15.85 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.85 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.85 a__and(tt,X:S) -> mark(X:S) 15.31/15.85 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.85 a__isNat(0) -> tt 15.31/15.85 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.85 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.85 a__isNat(X:S) -> isNat(X:S) 15.31/15.85 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatIList(zeros) -> tt 15.31/15.85 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.85 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.85 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 a__isNatIListKind(nil) -> tt 15.31/15.85 a__isNatIListKind(zeros) -> tt 15.31/15.85 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.85 a__isNatKind(0) -> tt 15.31/15.85 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.85 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.85 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.85 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.85 a__isNatList(nil) -> tt 15.31/15.85 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.85 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.85 a__length(nil) -> 0 15.31/15.85 a__length(X:S) -> length(X:S) 15.31/15.85 a__zeros -> cons(0,zeros) 15.31/15.85 a__zeros -> zeros 15.31/15.85 mark(0) -> 0 15.31/15.85 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.85 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.85 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.85 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.85 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.85 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.85 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.85 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.85 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.85 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.85 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.85 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.85 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.85 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.85 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.85 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.85 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.85 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.85 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.85 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.85 mark(nil) -> nil 15.31/15.85 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.85 mark(tt) -> tt 15.31/15.85 mark(zeros) -> a__zeros 15.31/15.85 15.31/15.85 Problem 1.2: 15.31/15.85 15.31/15.85 Reduction Pairs Processor: 15.31/15.85 -> Pairs: 15.31/15.85 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.85 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.85 MARK(U43(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.85 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.85 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.85 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.85 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 -> Usable rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Interpretation type: 15.31/15.86 Linear 15.31/15.86 ->Coefficients: 15.31/15.86 Natural Numbers 15.31/15.86 ->Dimension: 15.31/15.86 1 15.31/15.86 ->Bound: 15.31/15.86 2 15.31/15.86 ->Interpretation: 15.31/15.86 15.31/15.86 [a__U11](X1,X2) = X1 15.31/15.86 [a__U12](X) = 2 15.31/15.86 [a__U21](X1,X2) = 2 15.31/15.86 [a__U22](X) = X 15.31/15.86 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.86 [a__U32](X) = 2 15.31/15.86 [a__U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.86 [a__U42](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.86 [a__U43](X) = X + 2 15.31/15.86 [a__U51](X1,X2,X3) = X1 15.31/15.86 [a__U52](X1,X2) = X1 15.31/15.86 [a__U53](X) = X 15.31/15.86 [a__U61](X1,X2) = X1 + 2.X2 15.31/15.86 [a__and](X1,X2) = X1 + 2.X2 15.31/15.86 [a__isNat](X) = 2 15.31/15.86 [a__isNatIList](X) = 2.X + 2 15.31/15.86 [a__isNatIListKind](X) = 2 15.31/15.86 [a__isNatKind](X) = 2 15.31/15.86 [a__isNatList](X) = 2 15.31/15.86 [a__length](X) = X 15.31/15.86 [a__zeros] = 2 15.31/15.86 [mark](X) = 2.X + 2 15.31/15.86 [0] = 0 15.31/15.86 [U11](X1,X2) = X1 15.31/15.86 [U12](X) = 1 15.31/15.86 [U21](X1,X2) = 2 15.31/15.86 [U22](X) = X 15.31/15.86 [U31](X1,X2) = X1 + 2.X2 15.31/15.86 [U32](X) = 1 15.31/15.86 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 15.31/15.86 [U42](X1,X2) = 2.X1 + X2 + 2 15.31/15.86 [U43](X) = X + 2 15.31/15.86 [U51](X1,X2,X3) = X1 15.31/15.86 [U52](X1,X2) = X1 15.31/15.86 [U53](X) = X 15.31/15.86 [U61](X1,X2) = X1 + X2 15.31/15.86 [and](X1,X2) = X1 + 2.X2 15.31/15.86 [cons](X1,X2) = 2.X1 + 2.X2 + 2 15.31/15.86 [fSNonEmpty] = 0 15.31/15.86 [isNat](X) = 0 15.31/15.86 [isNatIList](X) = 2.X + 2 15.31/15.86 [isNatIListKind](X) = 0 15.31/15.86 [isNatKind](X) = 0 15.31/15.86 [isNatList](X) = 1 15.31/15.86 [length](X) = X 15.31/15.86 [nil] = 0 15.31/15.86 [s](X) = X 15.31/15.86 [tt] = 2 15.31/15.86 [zeros] = 0 15.31/15.86 [A__U11](X1,X2) = 0 15.31/15.86 [A__U12](X) = 0 15.31/15.86 [A__U21](X1,X2) = 0 15.31/15.86 [A__U22](X) = 0 15.31/15.86 [A__U31](X1,X2) = 0 15.31/15.86 [A__U32](X) = 0 15.31/15.86 [A__U41](X1,X2,X3) = 0 15.31/15.86 [A__U42](X1,X2) = 0 15.31/15.86 [A__U43](X) = 0 15.31/15.86 [A__U51](X1,X2,X3) = 0 15.31/15.86 [A__U52](X1,X2) = 0 15.31/15.86 [A__U53](X) = 0 15.31/15.86 [A__U61](X1,X2) = 0 15.31/15.86 [A__AND](X1,X2) = 2.X2 + 2 15.31/15.86 [A__ISNAT](X) = 0 15.31/15.86 [A__ISNATILIST](X) = 0 15.31/15.86 [A__ISNATILISTKIND](X) = 2 15.31/15.86 [A__ISNATKIND](X) = 0 15.31/15.86 [A__ISNATLIST](X) = 0 15.31/15.86 [A__LENGTH](X) = 0 15.31/15.86 [A__ZEROS] = 0 15.31/15.86 [MARK](X) = 2.X + 2 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 SCC Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Strongly Connected Components: 15.31/15.86 ->->Cycle: 15.31/15.86 ->->-> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 ->->-> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 Reduction Pairs Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 MARK(U51(X1:S,X2:S,X3:S)) -> MARK(X1:S) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 -> Usable rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Interpretation type: 15.31/15.86 Linear 15.31/15.86 ->Coefficients: 15.31/15.86 Natural Numbers 15.31/15.86 ->Dimension: 15.31/15.86 1 15.31/15.86 ->Bound: 15.31/15.86 2 15.31/15.86 ->Interpretation: 15.31/15.86 15.31/15.86 [a__U11](X1,X2) = X1 + X2 + 1 15.31/15.86 [a__U12](X) = X + 2 15.31/15.86 [a__U21](X1,X2) = X2 + 2 15.31/15.86 [a__U22](X) = X 15.31/15.86 [a__U31](X1,X2) = X1 + 2.X2 15.31/15.86 [a__U32](X) = 2 15.31/15.86 [a__U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.31/15.86 [a__U42](X1,X2) = 2.X2 + 2 15.31/15.86 [a__U43](X) = X 15.31/15.86 [a__U51](X1,X2,X3) = X1 + X2 + X3 + 1 15.31/15.86 [a__U52](X1,X2) = X1 + X2 + 1 15.31/15.86 [a__U53](X) = X + 2 15.31/15.86 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.86 [a__and](X1,X2) = X1 + X2 15.31/15.86 [a__isNat](X) = X + 2 15.31/15.86 [a__isNatIList](X) = 2.X + 2 15.31/15.86 [a__isNatIListKind](X) = 2 15.31/15.86 [a__isNatKind](X) = 2 15.31/15.86 [a__isNatList](X) = X + 1 15.31/15.86 [a__length](X) = X + 1 15.31/15.86 [a__zeros] = 2 15.31/15.86 [mark](X) = X + 2 15.31/15.86 [0] = 0 15.31/15.86 [U11](X1,X2) = X1 + X2 + 1 15.31/15.86 [U12](X) = X + 2 15.31/15.86 [U21](X1,X2) = X2 + 2 15.31/15.86 [U22](X) = X 15.31/15.86 [U31](X1,X2) = X1 + 2.X2 15.31/15.86 [U32](X) = 2 15.31/15.86 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 15.31/15.86 [U42](X1,X2) = 2.X2 + 2 15.31/15.86 [U43](X) = X 15.31/15.86 [U51](X1,X2,X3) = X1 + X2 + X3 + 1 15.31/15.86 [U52](X1,X2) = X1 + X2 + 1 15.31/15.86 [U53](X) = X + 2 15.31/15.86 [U61](X1,X2) = X1 + X2 + 2 15.31/15.86 [and](X1,X2) = X1 + X2 15.31/15.86 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.86 [fSNonEmpty] = 0 15.31/15.86 [isNat](X) = X 15.31/15.86 [isNatIList](X) = 2.X + 1 15.31/15.86 [isNatIListKind](X) = 0 15.31/15.86 [isNatKind](X) = 0 15.31/15.86 [isNatList](X) = X + 1 15.31/15.86 [length](X) = X + 1 15.31/15.86 [nil] = 1 15.31/15.86 [s](X) = X + 1 15.31/15.86 [tt] = 2 15.31/15.86 [zeros] = 0 15.31/15.86 [A__U11](X1,X2) = 0 15.31/15.86 [A__U12](X) = 0 15.31/15.86 [A__U21](X1,X2) = 0 15.31/15.86 [A__U22](X) = 0 15.31/15.86 [A__U31](X1,X2) = 0 15.31/15.86 [A__U32](X) = 0 15.31/15.86 [A__U41](X1,X2,X3) = 0 15.31/15.86 [A__U42](X1,X2) = 0 15.31/15.86 [A__U43](X) = 0 15.31/15.86 [A__U51](X1,X2,X3) = 0 15.31/15.86 [A__U52](X1,X2) = 0 15.31/15.86 [A__U53](X) = 0 15.31/15.86 [A__U61](X1,X2) = 0 15.31/15.86 [A__AND](X1,X2) = 2.X2 + 2 15.31/15.86 [A__ISNAT](X) = 0 15.31/15.86 [A__ISNATILIST](X) = 0 15.31/15.86 [A__ISNATILISTKIND](X) = 2 15.31/15.86 [A__ISNATKIND](X) = 0 15.31/15.86 [A__ISNATLIST](X) = 0 15.31/15.86 [A__LENGTH](X) = 0 15.31/15.86 [A__ZEROS] = 0 15.31/15.86 [MARK](X) = 2.X + 2 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 SCC Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Strongly Connected Components: 15.31/15.86 ->->Cycle: 15.31/15.86 ->->-> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 ->->-> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 Reduction Pairs Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 A__ISNATILISTKIND(cons(V1:S,V2:S)) -> A__AND(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 -> Usable rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Interpretation type: 15.31/15.86 Linear 15.31/15.86 ->Coefficients: 15.31/15.86 Natural Numbers 15.31/15.86 ->Dimension: 15.31/15.86 1 15.31/15.86 ->Bound: 15.31/15.86 2 15.31/15.86 ->Interpretation: 15.31/15.86 15.31/15.86 [a__U11](X1,X2) = 2 15.31/15.86 [a__U12](X) = 2 15.31/15.86 [a__U21](X1,X2) = 2 15.31/15.86 [a__U22](X) = X 15.31/15.86 [a__U31](X1,X2) = X1 + X2 15.31/15.86 [a__U32](X) = X 15.31/15.86 [a__U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.86 [a__U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.86 [a__U43](X) = 2 15.31/15.86 [a__U51](X1,X2,X3) = 2 15.31/15.86 [a__U52](X1,X2) = X1 15.31/15.86 [a__U53](X) = X 15.31/15.86 [a__U61](X1,X2) = X1 + X2 + 2 15.31/15.86 [a__and](X1,X2) = X1 + X2 15.31/15.86 [a__isNat](X) = 2 15.31/15.86 [a__isNatIList](X) = 2.X + 2 15.31/15.86 [a__isNatIListKind](X) = X + 2 15.31/15.86 [a__isNatKind](X) = X + 2 15.31/15.86 [a__isNatList](X) = 2 15.31/15.86 [a__length](X) = X + 2 15.31/15.86 [a__zeros] = 2 15.31/15.86 [mark](X) = X + 2 15.31/15.86 [0] = 0 15.31/15.86 [U11](X1,X2) = 0 15.31/15.86 [U12](X) = 2 15.31/15.86 [U21](X1,X2) = 2 15.31/15.86 [U22](X) = X 15.31/15.86 [U31](X1,X2) = X1 + X2 15.31/15.86 [U32](X) = X 15.31/15.86 [U41](X1,X2,X3) = X1 + X2 + 2.X3 + 2 15.31/15.86 [U42](X1,X2) = X1 + 2.X2 + 2 15.31/15.86 [U43](X) = 1 15.31/15.86 [U51](X1,X2,X3) = 1 15.31/15.86 [U52](X1,X2) = X1 15.31/15.86 [U53](X) = X 15.31/15.86 [U61](X1,X2) = X1 + X2 + 2 15.31/15.86 [and](X1,X2) = X1 + X2 15.31/15.86 [cons](X1,X2) = X1 + 2.X2 + 2 15.31/15.86 [fSNonEmpty] = 0 15.31/15.86 [isNat](X) = 0 15.31/15.86 [isNatIList](X) = 2.X + 1 15.31/15.86 [isNatIListKind](X) = X 15.31/15.86 [isNatKind](X) = X 15.31/15.86 [isNatList](X) = 1 15.31/15.86 [length](X) = X + 2 15.31/15.86 [nil] = 2 15.31/15.86 [s](X) = X 15.31/15.86 [tt] = 2 15.31/15.86 [zeros] = 0 15.31/15.86 [A__U11](X1,X2) = 0 15.31/15.86 [A__U12](X) = 0 15.31/15.86 [A__U21](X1,X2) = 0 15.31/15.86 [A__U22](X) = 0 15.31/15.86 [A__U31](X1,X2) = 0 15.31/15.86 [A__U32](X) = 0 15.31/15.86 [A__U41](X1,X2,X3) = 0 15.31/15.86 [A__U42](X1,X2) = 0 15.31/15.86 [A__U43](X) = 0 15.31/15.86 [A__U51](X1,X2,X3) = 0 15.31/15.86 [A__U52](X1,X2) = 0 15.31/15.86 [A__U53](X) = 0 15.31/15.86 [A__U61](X1,X2) = 0 15.31/15.86 [A__AND](X1,X2) = 2.X2 + 2 15.31/15.86 [A__ISNAT](X) = 0 15.31/15.86 [A__ISNATILIST](X) = 0 15.31/15.86 [A__ISNATILISTKIND](X) = 2.X + 2 15.31/15.86 [A__ISNATKIND](X) = 0 15.31/15.86 [A__ISNATLIST](X) = 0 15.31/15.86 [A__LENGTH](X) = 0 15.31/15.86 [A__ZEROS] = 0 15.31/15.86 [MARK](X) = 2.X + 2 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 SCC Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(isNatIListKind(X:S)) -> A__ISNATILISTKIND(X:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Strongly Connected Components: 15.31/15.86 ->->Cycle: 15.31/15.86 ->->-> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 ->->-> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 Subterm Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 MARK(U52(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(U53(X:S)) -> MARK(X:S) 15.31/15.86 MARK(U61(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> A__AND(mark(X1:S),X2:S) 15.31/15.86 MARK(and(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 15.31/15.86 MARK(length(X:S)) -> MARK(X:S) 15.31/15.86 MARK(s(X:S)) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Projection: 15.31/15.86 pi(A__AND) = 2 15.31/15.86 pi(MARK) = 1 15.31/15.86 15.31/15.86 Problem 1.2: 15.31/15.86 15.31/15.86 SCC Processor: 15.31/15.86 -> Pairs: 15.31/15.86 A__AND(tt,X:S) -> MARK(X:S) 15.31/15.86 -> Rules: 15.31/15.86 a__U11(tt,V1:S) -> a__U12(a__isNatList(V1:S)) 15.31/15.86 a__U11(X1:S,X2:S) -> U11(X1:S,X2:S) 15.31/15.86 a__U12(tt) -> tt 15.31/15.86 a__U12(X:S) -> U12(X:S) 15.31/15.86 a__U21(tt,V1:S) -> a__U22(a__isNat(V1:S)) 15.31/15.86 a__U21(X1:S,X2:S) -> U21(X1:S,X2:S) 15.31/15.86 a__U22(tt) -> tt 15.31/15.86 a__U22(X:S) -> U22(X:S) 15.31/15.86 a__U31(tt,V:S) -> a__U32(a__isNatList(V:S)) 15.31/15.86 a__U31(X1:S,X2:S) -> U31(X1:S,X2:S) 15.31/15.86 a__U32(tt) -> tt 15.31/15.86 a__U32(X:S) -> U32(X:S) 15.31/15.86 a__U41(tt,V1:S,V2:S) -> a__U42(a__isNat(V1:S),V2:S) 15.31/15.86 a__U41(X1:S,X2:S,X3:S) -> U41(X1:S,X2:S,X3:S) 15.31/15.86 a__U42(tt,V2:S) -> a__U43(a__isNatIList(V2:S)) 15.31/15.86 a__U42(X1:S,X2:S) -> U42(X1:S,X2:S) 15.31/15.86 a__U43(tt) -> tt 15.31/15.86 a__U43(X:S) -> U43(X:S) 15.31/15.86 a__U51(tt,V1:S,V2:S) -> a__U52(a__isNat(V1:S),V2:S) 15.31/15.86 a__U51(X1:S,X2:S,X3:S) -> U51(X1:S,X2:S,X3:S) 15.31/15.86 a__U52(tt,V2:S) -> a__U53(a__isNatList(V2:S)) 15.31/15.86 a__U52(X1:S,X2:S) -> U52(X1:S,X2:S) 15.31/15.86 a__U53(tt) -> tt 15.31/15.86 a__U53(X:S) -> U53(X:S) 15.31/15.86 a__U61(tt,L:S) -> s(a__length(mark(L:S))) 15.31/15.86 a__U61(X1:S,X2:S) -> U61(X1:S,X2:S) 15.31/15.86 a__and(tt,X:S) -> mark(X:S) 15.31/15.86 a__and(X1:S,X2:S) -> and(X1:S,X2:S) 15.31/15.86 a__isNat(0) -> tt 15.31/15.86 a__isNat(length(V1:S)) -> a__U11(a__isNatIListKind(V1:S),V1:S) 15.31/15.86 a__isNat(s(V1:S)) -> a__U21(a__isNatKind(V1:S),V1:S) 15.31/15.86 a__isNat(X:S) -> isNat(X:S) 15.31/15.86 a__isNatIList(cons(V1:S,V2:S)) -> a__U41(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatIList(zeros) -> tt 15.31/15.86 a__isNatIList(V:S) -> a__U31(a__isNatIListKind(V:S),V:S) 15.31/15.86 a__isNatIList(X:S) -> isNatIList(X:S) 15.31/15.86 a__isNatIListKind(cons(V1:S,V2:S)) -> a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)) 15.31/15.86 a__isNatIListKind(nil) -> tt 15.31/15.86 a__isNatIListKind(zeros) -> tt 15.31/15.86 a__isNatIListKind(X:S) -> isNatIListKind(X:S) 15.31/15.86 a__isNatKind(0) -> tt 15.31/15.86 a__isNatKind(length(V1:S)) -> a__isNatIListKind(V1:S) 15.31/15.86 a__isNatKind(s(V1:S)) -> a__isNatKind(V1:S) 15.31/15.86 a__isNatKind(X:S) -> isNatKind(X:S) 15.31/15.86 a__isNatList(cons(V1:S,V2:S)) -> a__U51(a__and(a__isNatKind(V1:S),isNatIListKind(V2:S)),V1:S,V2:S) 15.31/15.86 a__isNatList(nil) -> tt 15.31/15.86 a__isNatList(X:S) -> isNatList(X:S) 15.31/15.86 a__length(cons(N:S,L:S)) -> a__U61(a__and(a__and(a__isNatList(L:S),isNatIListKind(L:S)),and(isNat(N:S),isNatKind(N:S))),L:S) 15.31/15.86 a__length(nil) -> 0 15.31/15.86 a__length(X:S) -> length(X:S) 15.31/15.86 a__zeros -> cons(0,zeros) 15.31/15.86 a__zeros -> zeros 15.31/15.86 mark(0) -> 0 15.31/15.86 mark(U11(X1:S,X2:S)) -> a__U11(mark(X1:S),X2:S) 15.31/15.86 mark(U12(X:S)) -> a__U12(mark(X:S)) 15.31/15.86 mark(U21(X1:S,X2:S)) -> a__U21(mark(X1:S),X2:S) 15.31/15.86 mark(U22(X:S)) -> a__U22(mark(X:S)) 15.31/15.86 mark(U31(X1:S,X2:S)) -> a__U31(mark(X1:S),X2:S) 15.31/15.86 mark(U32(X:S)) -> a__U32(mark(X:S)) 15.31/15.86 mark(U41(X1:S,X2:S,X3:S)) -> a__U41(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U42(X1:S,X2:S)) -> a__U42(mark(X1:S),X2:S) 15.31/15.86 mark(U43(X:S)) -> a__U43(mark(X:S)) 15.31/15.86 mark(U51(X1:S,X2:S,X3:S)) -> a__U51(mark(X1:S),X2:S,X3:S) 15.31/15.86 mark(U52(X1:S,X2:S)) -> a__U52(mark(X1:S),X2:S) 15.31/15.86 mark(U53(X:S)) -> a__U53(mark(X:S)) 15.31/15.86 mark(U61(X1:S,X2:S)) -> a__U61(mark(X1:S),X2:S) 15.31/15.86 mark(and(X1:S,X2:S)) -> a__and(mark(X1:S),X2:S) 15.31/15.86 mark(cons(X1:S,X2:S)) -> cons(mark(X1:S),X2:S) 15.31/15.86 mark(isNat(X:S)) -> a__isNat(X:S) 15.31/15.86 mark(isNatIList(X:S)) -> a__isNatIList(X:S) 15.31/15.86 mark(isNatIListKind(X:S)) -> a__isNatIListKind(X:S) 15.31/15.86 mark(isNatKind(X:S)) -> a__isNatKind(X:S) 15.31/15.86 mark(isNatList(X:S)) -> a__isNatList(X:S) 15.31/15.86 mark(length(X:S)) -> a__length(mark(X:S)) 15.31/15.86 mark(nil) -> nil 15.31/15.86 mark(s(X:S)) -> s(mark(X:S)) 15.31/15.86 mark(tt) -> tt 15.31/15.86 mark(zeros) -> a__zeros 15.31/15.86 ->Strongly Connected Components: 15.31/15.86 There is no strongly connected component 15.31/15.86 15.31/15.86 The problem is finite. 15.31/15.86 EOF