216.90/219.15 YES 216.90/219.15 216.90/219.15 Problem 1: 216.90/219.15 216.90/219.15 (VAR v_NonEmpty:S L:S N:S V:S V1:S V2:S X:S X1:S X2:S X3:S) 216.90/219.15 (RULES 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.15 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.15 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.15 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.15 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.15 mark(0) -> active(0) 216.90/219.15 mark(nil) -> active(nil) 216.90/219.15 mark(tt) -> active(tt) 216.90/219.15 mark(zeros) -> active(zeros) 216.90/219.15 s(active(X:S)) -> s(X:S) 216.90/219.15 s(mark(X:S)) -> s(X:S) 216.90/219.15 ) 216.90/219.15 (STRATEGY INNERMOST) 216.90/219.15 216.90/219.15 Problem 1: 216.90/219.15 216.90/219.15 Dependency Pairs Processor: 216.90/219.15 -> Pairs: 216.90/219.15 U11#(active(X:S)) -> U11#(X:S) 216.90/219.15 U11#(mark(X:S)) -> U11#(X:S) 216.90/219.15 U21#(active(X:S)) -> U21#(X:S) 216.90/219.15 U21#(mark(X:S)) -> U21#(X:S) 216.90/219.15 U31#(active(X:S)) -> U31#(X:S) 216.90/219.15 U31#(mark(X:S)) -> U31#(X:S) 216.90/219.15 U41#(active(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.90/219.15 U41#(mark(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.90/219.15 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.90/219.15 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.90/219.15 U42#(active(X:S)) -> U42#(X:S) 216.90/219.15 U42#(mark(X:S)) -> U42#(X:S) 216.90/219.15 U51#(active(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.90/219.15 U51#(mark(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.90/219.15 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.90/219.15 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.90/219.15 U52#(active(X:S)) -> U52#(X:S) 216.90/219.15 U52#(mark(X:S)) -> U52#(X:S) 216.90/219.15 U61#(active(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(mark(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U62#(active(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.90/219.15 U62#(mark(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.90/219.15 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.90/219.15 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.90/219.15 ACTIVE(U11(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U21(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U31(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U41(tt,V2:S)) -> U42#(isNatIList(V2:S)) 216.90/219.15 ACTIVE(U41(tt,V2:S)) -> ISNATILIST(V2:S) 216.90/219.15 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.90/219.15 ACTIVE(U42(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U51(tt,V2:S)) -> U52#(isNatList(V2:S)) 216.90/219.15 ACTIVE(U51(tt,V2:S)) -> ISNATLIST(V2:S) 216.90/219.15 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.90/219.15 ACTIVE(U52(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U61(tt,L:S,N:S)) -> U62#(isNat(N:S),L:S) 216.90/219.15 ACTIVE(U61(tt,L:S,N:S)) -> ISNAT(N:S) 216.90/219.15 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.90/219.15 ACTIVE(U62(tt,L:S)) -> LENGTH(L:S) 216.90/219.15 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.90/219.15 ACTIVE(U62(tt,L:S)) -> S(length(L:S)) 216.90/219.15 ACTIVE(isNat(length(V1:S))) -> U11#(isNatList(V1:S)) 216.90/219.15 ACTIVE(isNat(length(V1:S))) -> ISNATLIST(V1:S) 216.90/219.15 ACTIVE(isNat(length(V1:S))) -> MARK(U11(isNatList(V1:S))) 216.90/219.15 ACTIVE(isNat(s(V1:S))) -> U21#(isNat(V1:S)) 216.90/219.15 ACTIVE(isNat(s(V1:S))) -> ISNAT(V1:S) 216.90/219.15 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.90/219.15 ACTIVE(isNat(0)) -> MARK(tt) 216.90/219.15 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> U41#(isNat(V1:S),V2:S) 216.90/219.15 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> ISNAT(V1:S) 216.90/219.15 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.90/219.15 ACTIVE(isNatIList(zeros)) -> MARK(tt) 216.90/219.15 ACTIVE(isNatIList(V:S)) -> U31#(isNatList(V:S)) 216.90/219.15 ACTIVE(isNatIList(V:S)) -> ISNATLIST(V:S) 216.90/219.15 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.90/219.15 ACTIVE(isNatList(cons(V1:S,V2:S))) -> U51#(isNat(V1:S),V2:S) 216.90/219.15 ACTIVE(isNatList(cons(V1:S,V2:S))) -> ISNAT(V1:S) 216.90/219.15 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.90/219.15 ACTIVE(isNatList(nil)) -> MARK(tt) 216.90/219.15 ACTIVE(length(cons(N:S,L:S))) -> U61#(isNatList(L:S),L:S,N:S) 216.90/219.15 ACTIVE(length(cons(N:S,L:S))) -> ISNATLIST(L:S) 216.90/219.15 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 ACTIVE(length(nil)) -> MARK(0) 216.90/219.15 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.90/219.15 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.90/219.15 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.90/219.15 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.90/219.15 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.90/219.15 ISNAT(active(X:S)) -> ISNAT(X:S) 216.90/219.15 ISNAT(mark(X:S)) -> ISNAT(X:S) 216.90/219.15 ISNATILIST(active(X:S)) -> ISNATILIST(X:S) 216.90/219.15 ISNATILIST(mark(X:S)) -> ISNATILIST(X:S) 216.90/219.15 ISNATLIST(active(X:S)) -> ISNATLIST(X:S) 216.90/219.15 ISNATLIST(mark(X:S)) -> ISNATLIST(X:S) 216.90/219.15 LENGTH(active(X:S)) -> LENGTH(X:S) 216.90/219.15 LENGTH(mark(X:S)) -> LENGTH(X:S) 216.90/219.15 MARK(U11(X:S)) -> U11#(mark(X:S)) 216.90/219.15 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.90/219.15 MARK(U11(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U21(X:S)) -> U21#(mark(X:S)) 216.90/219.15 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.90/219.15 MARK(U21(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U31(X:S)) -> U31#(mark(X:S)) 216.90/219.15 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.90/219.15 MARK(U31(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U41(X1:S,X2:S)) -> U41#(mark(X1:S),X2:S) 216.90/219.15 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.90/219.15 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(U42(X:S)) -> U42#(mark(X:S)) 216.90/219.15 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.90/219.15 MARK(U42(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U51(X1:S,X2:S)) -> U51#(mark(X1:S),X2:S) 216.90/219.15 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.90/219.15 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(U52(X:S)) -> U52#(mark(X:S)) 216.90/219.15 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.90/219.15 MARK(U52(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U61(X1:S,X2:S,X3:S)) -> U61#(mark(X1:S),X2:S,X3:S) 216.90/219.15 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.90/219.15 MARK(U62(X1:S,X2:S)) -> U62#(mark(X1:S),X2:S) 216.90/219.15 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.90/219.15 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.90/219.15 MARK(cons(X1:S,X2:S)) -> CONS(mark(X1:S),X2:S) 216.90/219.15 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.90/219.15 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.90/219.15 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.90/219.15 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.90/219.15 MARK(length(X:S)) -> LENGTH(mark(X:S)) 216.90/219.15 MARK(length(X:S)) -> MARK(X:S) 216.90/219.15 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.90/219.15 MARK(s(X:S)) -> MARK(X:S) 216.90/219.15 MARK(s(X:S)) -> S(mark(X:S)) 216.90/219.15 MARK(zeros) -> ACTIVE(zeros) 216.90/219.15 S(active(X:S)) -> S(X:S) 216.90/219.15 S(mark(X:S)) -> S(X:S) 216.90/219.15 -> Rules: 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.15 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.15 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.15 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.15 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.15 mark(0) -> active(0) 216.90/219.15 mark(nil) -> active(nil) 216.90/219.15 mark(tt) -> active(tt) 216.90/219.15 mark(zeros) -> active(zeros) 216.90/219.15 s(active(X:S)) -> s(X:S) 216.90/219.15 s(mark(X:S)) -> s(X:S) 216.90/219.15 216.90/219.15 Problem 1: 216.90/219.15 216.90/219.15 SCC Processor: 216.90/219.15 -> Pairs: 216.90/219.15 U11#(active(X:S)) -> U11#(X:S) 216.90/219.15 U11#(mark(X:S)) -> U11#(X:S) 216.90/219.15 U21#(active(X:S)) -> U21#(X:S) 216.90/219.15 U21#(mark(X:S)) -> U21#(X:S) 216.90/219.15 U31#(active(X:S)) -> U31#(X:S) 216.90/219.15 U31#(mark(X:S)) -> U31#(X:S) 216.90/219.15 U41#(active(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.90/219.15 U41#(mark(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.90/219.15 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.90/219.15 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.90/219.15 U42#(active(X:S)) -> U42#(X:S) 216.90/219.15 U42#(mark(X:S)) -> U42#(X:S) 216.90/219.15 U51#(active(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.90/219.15 U51#(mark(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.90/219.15 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.90/219.15 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.90/219.15 U52#(active(X:S)) -> U52#(X:S) 216.90/219.15 U52#(mark(X:S)) -> U52#(X:S) 216.90/219.15 U61#(active(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(mark(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.90/219.15 U62#(active(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.90/219.15 U62#(mark(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.90/219.15 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.90/219.15 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.90/219.15 ACTIVE(U11(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U21(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U31(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U41(tt,V2:S)) -> U42#(isNatIList(V2:S)) 216.90/219.15 ACTIVE(U41(tt,V2:S)) -> ISNATILIST(V2:S) 216.90/219.15 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.90/219.15 ACTIVE(U42(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U51(tt,V2:S)) -> U52#(isNatList(V2:S)) 216.90/219.15 ACTIVE(U51(tt,V2:S)) -> ISNATLIST(V2:S) 216.90/219.15 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.90/219.15 ACTIVE(U52(tt)) -> MARK(tt) 216.90/219.15 ACTIVE(U61(tt,L:S,N:S)) -> U62#(isNat(N:S),L:S) 216.90/219.15 ACTIVE(U61(tt,L:S,N:S)) -> ISNAT(N:S) 216.90/219.15 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.90/219.15 ACTIVE(U62(tt,L:S)) -> LENGTH(L:S) 216.90/219.15 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.90/219.15 ACTIVE(U62(tt,L:S)) -> S(length(L:S)) 216.90/219.15 ACTIVE(isNat(length(V1:S))) -> U11#(isNatList(V1:S)) 216.90/219.15 ACTIVE(isNat(length(V1:S))) -> ISNATLIST(V1:S) 216.90/219.15 ACTIVE(isNat(length(V1:S))) -> MARK(U11(isNatList(V1:S))) 216.90/219.15 ACTIVE(isNat(s(V1:S))) -> U21#(isNat(V1:S)) 216.90/219.15 ACTIVE(isNat(s(V1:S))) -> ISNAT(V1:S) 216.90/219.15 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.90/219.15 ACTIVE(isNat(0)) -> MARK(tt) 216.90/219.15 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> U41#(isNat(V1:S),V2:S) 216.90/219.15 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> ISNAT(V1:S) 216.90/219.15 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.90/219.15 ACTIVE(isNatIList(zeros)) -> MARK(tt) 216.90/219.15 ACTIVE(isNatIList(V:S)) -> U31#(isNatList(V:S)) 216.90/219.15 ACTIVE(isNatIList(V:S)) -> ISNATLIST(V:S) 216.90/219.15 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.90/219.15 ACTIVE(isNatList(cons(V1:S,V2:S))) -> U51#(isNat(V1:S),V2:S) 216.90/219.15 ACTIVE(isNatList(cons(V1:S,V2:S))) -> ISNAT(V1:S) 216.90/219.15 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.90/219.15 ACTIVE(isNatList(nil)) -> MARK(tt) 216.90/219.15 ACTIVE(length(cons(N:S,L:S))) -> U61#(isNatList(L:S),L:S,N:S) 216.90/219.15 ACTIVE(length(cons(N:S,L:S))) -> ISNATLIST(L:S) 216.90/219.15 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 ACTIVE(length(nil)) -> MARK(0) 216.90/219.15 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.90/219.15 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.90/219.15 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.90/219.15 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.90/219.15 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.90/219.15 ISNAT(active(X:S)) -> ISNAT(X:S) 216.90/219.15 ISNAT(mark(X:S)) -> ISNAT(X:S) 216.90/219.15 ISNATILIST(active(X:S)) -> ISNATILIST(X:S) 216.90/219.15 ISNATILIST(mark(X:S)) -> ISNATILIST(X:S) 216.90/219.15 ISNATLIST(active(X:S)) -> ISNATLIST(X:S) 216.90/219.15 ISNATLIST(mark(X:S)) -> ISNATLIST(X:S) 216.90/219.15 LENGTH(active(X:S)) -> LENGTH(X:S) 216.90/219.15 LENGTH(mark(X:S)) -> LENGTH(X:S) 216.90/219.15 MARK(U11(X:S)) -> U11#(mark(X:S)) 216.90/219.15 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.90/219.15 MARK(U11(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U21(X:S)) -> U21#(mark(X:S)) 216.90/219.15 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.90/219.15 MARK(U21(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U31(X:S)) -> U31#(mark(X:S)) 216.90/219.15 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.90/219.15 MARK(U31(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U41(X1:S,X2:S)) -> U41#(mark(X1:S),X2:S) 216.90/219.15 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.90/219.15 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(U42(X:S)) -> U42#(mark(X:S)) 216.90/219.15 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.90/219.15 MARK(U42(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U51(X1:S,X2:S)) -> U51#(mark(X1:S),X2:S) 216.90/219.15 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.90/219.15 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(U52(X:S)) -> U52#(mark(X:S)) 216.90/219.15 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.90/219.15 MARK(U52(X:S)) -> MARK(X:S) 216.90/219.15 MARK(U61(X1:S,X2:S,X3:S)) -> U61#(mark(X1:S),X2:S,X3:S) 216.90/219.15 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.90/219.15 MARK(U62(X1:S,X2:S)) -> U62#(mark(X1:S),X2:S) 216.90/219.15 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.90/219.15 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.90/219.15 MARK(cons(X1:S,X2:S)) -> CONS(mark(X1:S),X2:S) 216.90/219.15 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.15 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.90/219.15 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.90/219.15 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.90/219.15 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.90/219.15 MARK(length(X:S)) -> LENGTH(mark(X:S)) 216.90/219.15 MARK(length(X:S)) -> MARK(X:S) 216.90/219.15 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.90/219.15 MARK(s(X:S)) -> MARK(X:S) 216.90/219.15 MARK(s(X:S)) -> S(mark(X:S)) 216.90/219.15 MARK(zeros) -> ACTIVE(zeros) 216.90/219.15 S(active(X:S)) -> S(X:S) 216.90/219.15 S(mark(X:S)) -> S(X:S) 216.90/219.15 -> Rules: 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.15 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.15 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.15 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.15 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.15 mark(0) -> active(0) 216.90/219.15 mark(nil) -> active(nil) 216.90/219.15 mark(tt) -> active(tt) 216.90/219.15 mark(zeros) -> active(zeros) 216.90/219.15 s(active(X:S)) -> s(X:S) 216.90/219.15 s(mark(X:S)) -> s(X:S) 216.90/219.15 ->Strongly Connected Components: 216.90/219.15 ->->Cycle: 216.90/219.15 ->->-> Pairs: 216.90/219.15 S(active(X:S)) -> S(X:S) 216.90/219.15 S(mark(X:S)) -> S(X:S) 216.90/219.15 ->->-> Rules: 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.15 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.15 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.15 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.15 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.15 mark(0) -> active(0) 216.90/219.15 mark(nil) -> active(nil) 216.90/219.15 mark(tt) -> active(tt) 216.90/219.15 mark(zeros) -> active(zeros) 216.90/219.15 s(active(X:S)) -> s(X:S) 216.90/219.15 s(mark(X:S)) -> s(X:S) 216.90/219.15 ->->Cycle: 216.90/219.15 ->->-> Pairs: 216.90/219.15 LENGTH(active(X:S)) -> LENGTH(X:S) 216.90/219.15 LENGTH(mark(X:S)) -> LENGTH(X:S) 216.90/219.15 ->->-> Rules: 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.15 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.15 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.15 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.15 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.15 mark(0) -> active(0) 216.90/219.15 mark(nil) -> active(nil) 216.90/219.15 mark(tt) -> active(tt) 216.90/219.15 mark(zeros) -> active(zeros) 216.90/219.15 s(active(X:S)) -> s(X:S) 216.90/219.15 s(mark(X:S)) -> s(X:S) 216.90/219.15 ->->Cycle: 216.90/219.15 ->->-> Pairs: 216.90/219.15 ISNATLIST(active(X:S)) -> ISNATLIST(X:S) 216.90/219.15 ISNATLIST(mark(X:S)) -> ISNATLIST(X:S) 216.90/219.15 ->->-> Rules: 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.15 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.15 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.15 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.15 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.15 mark(0) -> active(0) 216.90/219.15 mark(nil) -> active(nil) 216.90/219.15 mark(tt) -> active(tt) 216.90/219.15 mark(zeros) -> active(zeros) 216.90/219.15 s(active(X:S)) -> s(X:S) 216.90/219.15 s(mark(X:S)) -> s(X:S) 216.90/219.15 ->->Cycle: 216.90/219.15 ->->-> Pairs: 216.90/219.15 ISNATILIST(active(X:S)) -> ISNATILIST(X:S) 216.90/219.15 ISNATILIST(mark(X:S)) -> ISNATILIST(X:S) 216.90/219.15 ->->-> Rules: 216.90/219.15 U11(active(X:S)) -> U11(X:S) 216.90/219.15 U11(mark(X:S)) -> U11(X:S) 216.90/219.15 U21(active(X:S)) -> U21(X:S) 216.90/219.15 U21(mark(X:S)) -> U21(X:S) 216.90/219.15 U31(active(X:S)) -> U31(X:S) 216.90/219.15 U31(mark(X:S)) -> U31(X:S) 216.90/219.15 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.15 U42(active(X:S)) -> U42(X:S) 216.90/219.15 U42(mark(X:S)) -> U42(X:S) 216.90/219.15 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.15 U52(active(X:S)) -> U52(X:S) 216.90/219.15 U52(mark(X:S)) -> U52(X:S) 216.90/219.15 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.15 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.15 active(U11(tt)) -> mark(tt) 216.90/219.15 active(U21(tt)) -> mark(tt) 216.90/219.15 active(U31(tt)) -> mark(tt) 216.90/219.15 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.15 active(U42(tt)) -> mark(tt) 216.90/219.15 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.15 active(U52(tt)) -> mark(tt) 216.90/219.15 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.15 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.15 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.15 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.15 active(isNat(0)) -> mark(tt) 216.90/219.15 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatIList(zeros)) -> mark(tt) 216.90/219.15 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.15 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.15 active(isNatList(nil)) -> mark(tt) 216.90/219.15 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.15 active(length(nil)) -> mark(0) 216.90/219.15 active(zeros) -> mark(cons(0,zeros)) 216.90/219.15 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.15 isNat(active(X:S)) -> isNat(X:S) 216.90/219.15 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.15 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.15 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.15 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.15 length(active(X:S)) -> length(X:S) 216.90/219.15 length(mark(X:S)) -> length(X:S) 216.90/219.15 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.15 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.15 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.15 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.15 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.15 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.15 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.15 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.15 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.15 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.15 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 ISNAT(active(X:S)) -> ISNAT(X:S) 216.90/219.16 ISNAT(mark(X:S)) -> ISNAT(X:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.90/219.16 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.90/219.16 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.90/219.16 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U62#(active(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.90/219.16 U62#(mark(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.90/219.16 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.90/219.16 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U61#(active(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.16 U61#(mark(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.16 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.16 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.90/219.16 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.90/219.16 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U52#(active(X:S)) -> U52#(X:S) 216.90/219.16 U52#(mark(X:S)) -> U52#(X:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U51#(active(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.90/219.16 U51#(mark(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.90/219.16 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.90/219.16 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U42#(active(X:S)) -> U42#(X:S) 216.90/219.16 U42#(mark(X:S)) -> U42#(X:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U41#(active(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.90/219.16 U41#(mark(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.90/219.16 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.90/219.16 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U31#(active(X:S)) -> U31#(X:S) 216.90/219.16 U31#(mark(X:S)) -> U31#(X:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U21#(active(X:S)) -> U21#(X:S) 216.90/219.16 U21#(mark(X:S)) -> U21#(X:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 U11#(active(X:S)) -> U11#(X:S) 216.90/219.16 U11#(mark(X:S)) -> U11#(X:S) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->->Cycle: 216.90/219.16 ->->-> Pairs: 216.90/219.16 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.90/219.16 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.90/219.16 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.90/219.16 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.90/219.16 ACTIVE(isNat(length(V1:S))) -> MARK(U11(isNatList(V1:S))) 216.90/219.16 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.90/219.16 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.90/219.16 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.90/219.16 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.90/219.16 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.90/219.16 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.90/219.16 MARK(U11(X:S)) -> MARK(X:S) 216.90/219.16 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.90/219.16 MARK(U21(X:S)) -> MARK(X:S) 216.90/219.16 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.90/219.16 MARK(U31(X:S)) -> MARK(X:S) 216.90/219.16 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.90/219.16 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.16 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.90/219.16 MARK(U42(X:S)) -> MARK(X:S) 216.90/219.16 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.90/219.16 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.16 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.90/219.16 MARK(U52(X:S)) -> MARK(X:S) 216.90/219.16 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.90/219.16 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.90/219.16 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.16 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.90/219.16 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.90/219.16 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.90/219.16 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.90/219.16 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.90/219.16 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.90/219.16 MARK(length(X:S)) -> MARK(X:S) 216.90/219.16 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.90/219.16 MARK(s(X:S)) -> MARK(X:S) 216.90/219.16 MARK(zeros) -> ACTIVE(zeros) 216.90/219.16 ->->-> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 216.90/219.16 216.90/219.16 The problem is decomposed in 16 subproblems. 216.90/219.16 216.90/219.16 Problem 1.1: 216.90/219.16 216.90/219.16 Subterm Processor: 216.90/219.16 -> Pairs: 216.90/219.16 S(active(X:S)) -> S(X:S) 216.90/219.16 S(mark(X:S)) -> S(X:S) 216.90/219.16 -> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->Projection: 216.90/219.16 pi(S) = 1 216.90/219.16 216.90/219.16 Problem 1.1: 216.90/219.16 216.90/219.16 SCC Processor: 216.90/219.16 -> Pairs: 216.90/219.16 Empty 216.90/219.16 -> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->Strongly Connected Components: 216.90/219.16 There is no strongly connected component 216.90/219.16 216.90/219.16 The problem is finite. 216.90/219.16 216.90/219.16 Problem 1.2: 216.90/219.16 216.90/219.16 Subterm Processor: 216.90/219.16 -> Pairs: 216.90/219.16 LENGTH(active(X:S)) -> LENGTH(X:S) 216.90/219.16 LENGTH(mark(X:S)) -> LENGTH(X:S) 216.90/219.16 -> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->Projection: 216.90/219.16 pi(LENGTH) = 1 216.90/219.16 216.90/219.16 Problem 1.2: 216.90/219.16 216.90/219.16 SCC Processor: 216.90/219.16 -> Pairs: 216.90/219.16 Empty 216.90/219.16 -> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->Strongly Connected Components: 216.90/219.16 There is no strongly connected component 216.90/219.16 216.90/219.16 The problem is finite. 216.90/219.16 216.90/219.16 Problem 1.3: 216.90/219.16 216.90/219.16 Subterm Processor: 216.90/219.16 -> Pairs: 216.90/219.16 ISNATLIST(active(X:S)) -> ISNATLIST(X:S) 216.90/219.16 ISNATLIST(mark(X:S)) -> ISNATLIST(X:S) 216.90/219.16 -> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.90/219.16 U31(mark(X:S)) -> U31(X:S) 216.90/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.90/219.16 U42(active(X:S)) -> U42(X:S) 216.90/219.16 U42(mark(X:S)) -> U42(X:S) 216.90/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.90/219.16 U52(active(X:S)) -> U52(X:S) 216.90/219.16 U52(mark(X:S)) -> U52(X:S) 216.90/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.90/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.90/219.16 active(U11(tt)) -> mark(tt) 216.90/219.16 active(U21(tt)) -> mark(tt) 216.90/219.16 active(U31(tt)) -> mark(tt) 216.90/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.90/219.16 active(U42(tt)) -> mark(tt) 216.90/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.90/219.16 active(U52(tt)) -> mark(tt) 216.90/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.90/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.90/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.90/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.90/219.16 active(isNat(0)) -> mark(tt) 216.90/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatIList(zeros)) -> mark(tt) 216.90/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.90/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.90/219.16 active(isNatList(nil)) -> mark(tt) 216.90/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.90/219.16 active(length(nil)) -> mark(0) 216.90/219.16 active(zeros) -> mark(cons(0,zeros)) 216.90/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.90/219.16 isNat(active(X:S)) -> isNat(X:S) 216.90/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.90/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.90/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.90/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.90/219.16 length(active(X:S)) -> length(X:S) 216.90/219.16 length(mark(X:S)) -> length(X:S) 216.90/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.90/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.90/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.90/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.90/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.90/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.90/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.90/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.90/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.90/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.90/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.90/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.90/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.90/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.90/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.90/219.16 mark(0) -> active(0) 216.90/219.16 mark(nil) -> active(nil) 216.90/219.16 mark(tt) -> active(tt) 216.90/219.16 mark(zeros) -> active(zeros) 216.90/219.16 s(active(X:S)) -> s(X:S) 216.90/219.16 s(mark(X:S)) -> s(X:S) 216.90/219.16 ->Projection: 216.90/219.16 pi(ISNATLIST) = 1 216.90/219.16 216.90/219.16 Problem 1.3: 216.90/219.16 216.90/219.16 SCC Processor: 216.90/219.16 -> Pairs: 216.90/219.16 Empty 216.90/219.16 -> Rules: 216.90/219.16 U11(active(X:S)) -> U11(X:S) 216.90/219.16 U11(mark(X:S)) -> U11(X:S) 216.90/219.16 U21(active(X:S)) -> U21(X:S) 216.90/219.16 U21(mark(X:S)) -> U21(X:S) 216.90/219.16 U31(active(X:S)) -> U31(X:S) 216.95/219.16 U31(mark(X:S)) -> U31(X:S) 216.95/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U42(active(X:S)) -> U42(X:S) 216.95/219.16 U42(mark(X:S)) -> U42(X:S) 216.95/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U52(active(X:S)) -> U52(X:S) 216.95/219.16 U52(mark(X:S)) -> U52(X:S) 216.95/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 active(U11(tt)) -> mark(tt) 216.95/219.16 active(U21(tt)) -> mark(tt) 216.95/219.16 active(U31(tt)) -> mark(tt) 216.95/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.16 active(U42(tt)) -> mark(tt) 216.95/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.16 active(U52(tt)) -> mark(tt) 216.95/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.16 active(isNat(0)) -> mark(tt) 216.95/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatIList(zeros)) -> mark(tt) 216.95/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatList(nil)) -> mark(tt) 216.95/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.16 active(length(nil)) -> mark(0) 216.95/219.16 active(zeros) -> mark(cons(0,zeros)) 216.95/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 isNat(active(X:S)) -> isNat(X:S) 216.95/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.16 length(active(X:S)) -> length(X:S) 216.95/219.16 length(mark(X:S)) -> length(X:S) 216.95/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.16 mark(0) -> active(0) 216.95/219.16 mark(nil) -> active(nil) 216.95/219.16 mark(tt) -> active(tt) 216.95/219.16 mark(zeros) -> active(zeros) 216.95/219.16 s(active(X:S)) -> s(X:S) 216.95/219.16 s(mark(X:S)) -> s(X:S) 216.95/219.16 ->Strongly Connected Components: 216.95/219.16 There is no strongly connected component 216.95/219.16 216.95/219.16 The problem is finite. 216.95/219.16 216.95/219.16 Problem 1.4: 216.95/219.16 216.95/219.16 Subterm Processor: 216.95/219.16 -> Pairs: 216.95/219.16 ISNATILIST(active(X:S)) -> ISNATILIST(X:S) 216.95/219.16 ISNATILIST(mark(X:S)) -> ISNATILIST(X:S) 216.95/219.16 -> Rules: 216.95/219.16 U11(active(X:S)) -> U11(X:S) 216.95/219.16 U11(mark(X:S)) -> U11(X:S) 216.95/219.16 U21(active(X:S)) -> U21(X:S) 216.95/219.16 U21(mark(X:S)) -> U21(X:S) 216.95/219.16 U31(active(X:S)) -> U31(X:S) 216.95/219.16 U31(mark(X:S)) -> U31(X:S) 216.95/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U42(active(X:S)) -> U42(X:S) 216.95/219.16 U42(mark(X:S)) -> U42(X:S) 216.95/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U52(active(X:S)) -> U52(X:S) 216.95/219.16 U52(mark(X:S)) -> U52(X:S) 216.95/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 active(U11(tt)) -> mark(tt) 216.95/219.16 active(U21(tt)) -> mark(tt) 216.95/219.16 active(U31(tt)) -> mark(tt) 216.95/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.16 active(U42(tt)) -> mark(tt) 216.95/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.16 active(U52(tt)) -> mark(tt) 216.95/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.16 active(isNat(0)) -> mark(tt) 216.95/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatIList(zeros)) -> mark(tt) 216.95/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatList(nil)) -> mark(tt) 216.95/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.16 active(length(nil)) -> mark(0) 216.95/219.16 active(zeros) -> mark(cons(0,zeros)) 216.95/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 isNat(active(X:S)) -> isNat(X:S) 216.95/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.16 length(active(X:S)) -> length(X:S) 216.95/219.16 length(mark(X:S)) -> length(X:S) 216.95/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.16 mark(0) -> active(0) 216.95/219.16 mark(nil) -> active(nil) 216.95/219.16 mark(tt) -> active(tt) 216.95/219.16 mark(zeros) -> active(zeros) 216.95/219.16 s(active(X:S)) -> s(X:S) 216.95/219.16 s(mark(X:S)) -> s(X:S) 216.95/219.16 ->Projection: 216.95/219.16 pi(ISNATILIST) = 1 216.95/219.16 216.95/219.16 Problem 1.4: 216.95/219.16 216.95/219.16 SCC Processor: 216.95/219.16 -> Pairs: 216.95/219.16 Empty 216.95/219.16 -> Rules: 216.95/219.16 U11(active(X:S)) -> U11(X:S) 216.95/219.16 U11(mark(X:S)) -> U11(X:S) 216.95/219.16 U21(active(X:S)) -> U21(X:S) 216.95/219.16 U21(mark(X:S)) -> U21(X:S) 216.95/219.16 U31(active(X:S)) -> U31(X:S) 216.95/219.16 U31(mark(X:S)) -> U31(X:S) 216.95/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U42(active(X:S)) -> U42(X:S) 216.95/219.16 U42(mark(X:S)) -> U42(X:S) 216.95/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U52(active(X:S)) -> U52(X:S) 216.95/219.16 U52(mark(X:S)) -> U52(X:S) 216.95/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 active(U11(tt)) -> mark(tt) 216.95/219.16 active(U21(tt)) -> mark(tt) 216.95/219.16 active(U31(tt)) -> mark(tt) 216.95/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.16 active(U42(tt)) -> mark(tt) 216.95/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.16 active(U52(tt)) -> mark(tt) 216.95/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.16 active(isNat(0)) -> mark(tt) 216.95/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatIList(zeros)) -> mark(tt) 216.95/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatList(nil)) -> mark(tt) 216.95/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.16 active(length(nil)) -> mark(0) 216.95/219.16 active(zeros) -> mark(cons(0,zeros)) 216.95/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 isNat(active(X:S)) -> isNat(X:S) 216.95/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.16 length(active(X:S)) -> length(X:S) 216.95/219.16 length(mark(X:S)) -> length(X:S) 216.95/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.16 mark(0) -> active(0) 216.95/219.16 mark(nil) -> active(nil) 216.95/219.16 mark(tt) -> active(tt) 216.95/219.16 mark(zeros) -> active(zeros) 216.95/219.16 s(active(X:S)) -> s(X:S) 216.95/219.16 s(mark(X:S)) -> s(X:S) 216.95/219.16 ->Strongly Connected Components: 216.95/219.16 There is no strongly connected component 216.95/219.16 216.95/219.16 The problem is finite. 216.95/219.16 216.95/219.16 Problem 1.5: 216.95/219.16 216.95/219.16 Subterm Processor: 216.95/219.16 -> Pairs: 216.95/219.16 ISNAT(active(X:S)) -> ISNAT(X:S) 216.95/219.16 ISNAT(mark(X:S)) -> ISNAT(X:S) 216.95/219.16 -> Rules: 216.95/219.16 U11(active(X:S)) -> U11(X:S) 216.95/219.16 U11(mark(X:S)) -> U11(X:S) 216.95/219.16 U21(active(X:S)) -> U21(X:S) 216.95/219.16 U21(mark(X:S)) -> U21(X:S) 216.95/219.16 U31(active(X:S)) -> U31(X:S) 216.95/219.16 U31(mark(X:S)) -> U31(X:S) 216.95/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U42(active(X:S)) -> U42(X:S) 216.95/219.16 U42(mark(X:S)) -> U42(X:S) 216.95/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U52(active(X:S)) -> U52(X:S) 216.95/219.16 U52(mark(X:S)) -> U52(X:S) 216.95/219.16 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.16 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.16 active(U11(tt)) -> mark(tt) 216.95/219.16 active(U21(tt)) -> mark(tt) 216.95/219.16 active(U31(tt)) -> mark(tt) 216.95/219.16 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.16 active(U42(tt)) -> mark(tt) 216.95/219.16 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.16 active(U52(tt)) -> mark(tt) 216.95/219.16 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.16 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.16 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.16 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.16 active(isNat(0)) -> mark(tt) 216.95/219.16 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatIList(zeros)) -> mark(tt) 216.95/219.16 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.16 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.16 active(isNatList(nil)) -> mark(tt) 216.95/219.16 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.16 active(length(nil)) -> mark(0) 216.95/219.16 active(zeros) -> mark(cons(0,zeros)) 216.95/219.16 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.16 isNat(active(X:S)) -> isNat(X:S) 216.95/219.16 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.16 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.16 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.16 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.16 length(active(X:S)) -> length(X:S) 216.95/219.16 length(mark(X:S)) -> length(X:S) 216.95/219.16 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.16 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.16 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.16 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.16 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.16 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.16 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.16 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.16 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.16 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.16 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.16 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.16 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.16 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.16 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.16 mark(0) -> active(0) 216.95/219.16 mark(nil) -> active(nil) 216.95/219.16 mark(tt) -> active(tt) 216.95/219.16 mark(zeros) -> active(zeros) 216.95/219.16 s(active(X:S)) -> s(X:S) 216.95/219.16 s(mark(X:S)) -> s(X:S) 216.95/219.16 ->Projection: 216.95/219.16 pi(ISNAT) = 1 216.95/219.16 216.95/219.16 Problem 1.5: 216.95/219.16 216.95/219.16 SCC Processor: 216.95/219.16 -> Pairs: 216.95/219.16 Empty 216.95/219.16 -> Rules: 216.95/219.16 U11(active(X:S)) -> U11(X:S) 216.95/219.16 U11(mark(X:S)) -> U11(X:S) 216.95/219.16 U21(active(X:S)) -> U21(X:S) 216.95/219.16 U21(mark(X:S)) -> U21(X:S) 216.95/219.16 U31(active(X:S)) -> U31(X:S) 216.95/219.16 U31(mark(X:S)) -> U31(X:S) 216.95/219.16 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.16 U42(active(X:S)) -> U42(X:S) 216.95/219.16 U42(mark(X:S)) -> U42(X:S) 216.95/219.16 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.16 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 There is no strongly connected component 216.95/219.17 216.95/219.17 The problem is finite. 216.95/219.17 216.95/219.17 Problem 1.6: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 CONS(active(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.95/219.17 CONS(mark(X1:S),X2:S) -> CONS(X1:S,X2:S) 216.95/219.17 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(CONS) = 1 216.95/219.17 216.95/219.17 Problem 1.6: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 ->->Cycle: 216.95/219.17 ->->-> Pairs: 216.95/219.17 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 ->->-> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 216.95/219.17 Problem 1.6: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 CONS(X1:S,active(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 CONS(X1:S,mark(X2:S)) -> CONS(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(CONS) = 2 216.95/219.17 216.95/219.17 Problem 1.6: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 Empty 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 There is no strongly connected component 216.95/219.17 216.95/219.17 The problem is finite. 216.95/219.17 216.95/219.17 Problem 1.7: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U62#(active(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.95/219.17 U62#(mark(X1:S),X2:S) -> U62#(X1:S,X2:S) 216.95/219.17 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U62#) = 1 216.95/219.17 216.95/219.17 Problem 1.7: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 ->->Cycle: 216.95/219.17 ->->-> Pairs: 216.95/219.17 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 ->->-> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 216.95/219.17 Problem 1.7: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U62#(X1:S,active(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 U62#(X1:S,mark(X2:S)) -> U62#(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U62#) = 2 216.95/219.17 216.95/219.17 Problem 1.7: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 Empty 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 There is no strongly connected component 216.95/219.17 216.95/219.17 The problem is finite. 216.95/219.17 216.95/219.17 Problem 1.8: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U61#(active(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(mark(X1:S),X2:S,X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U61#) = 1 216.95/219.17 216.95/219.17 Problem 1.8: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 ->->Cycle: 216.95/219.17 ->->-> Pairs: 216.95/219.17 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 ->->-> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 216.95/219.17 Problem 1.8: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U61#(X1:S,active(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,mark(X2:S),X3:S) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U61#) = 2 216.95/219.17 216.95/219.17 Problem 1.8: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 ->->Cycle: 216.95/219.17 ->->-> Pairs: 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 ->->-> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 216.95/219.17 Problem 1.8: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U61#(X1:S,X2:S,active(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 U61#(X1:S,X2:S,mark(X3:S)) -> U61#(X1:S,X2:S,X3:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U61#) = 3 216.95/219.17 216.95/219.17 Problem 1.8: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 Empty 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 There is no strongly connected component 216.95/219.17 216.95/219.17 The problem is finite. 216.95/219.17 216.95/219.17 Problem 1.9: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U52#(active(X:S)) -> U52#(X:S) 216.95/219.17 U52#(mark(X:S)) -> U52#(X:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U52#) = 1 216.95/219.17 216.95/219.17 Problem 1.9: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 Empty 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Strongly Connected Components: 216.95/219.17 There is no strongly connected component 216.95/219.17 216.95/219.17 The problem is finite. 216.95/219.17 216.95/219.17 Problem 1.10: 216.95/219.17 216.95/219.17 Subterm Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U51#(active(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.95/219.17 U51#(mark(X1:S),X2:S) -> U51#(X1:S,X2:S) 216.95/219.17 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.17 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.17 active(U11(tt)) -> mark(tt) 216.95/219.17 active(U21(tt)) -> mark(tt) 216.95/219.17 active(U31(tt)) -> mark(tt) 216.95/219.17 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.17 active(U42(tt)) -> mark(tt) 216.95/219.17 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.17 active(U52(tt)) -> mark(tt) 216.95/219.17 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.17 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.17 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.17 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.17 active(isNat(0)) -> mark(tt) 216.95/219.17 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatIList(zeros)) -> mark(tt) 216.95/219.17 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.17 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.17 active(isNatList(nil)) -> mark(tt) 216.95/219.17 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.17 active(length(nil)) -> mark(0) 216.95/219.17 active(zeros) -> mark(cons(0,zeros)) 216.95/219.17 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.17 isNat(active(X:S)) -> isNat(X:S) 216.95/219.17 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.17 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.17 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.17 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.17 length(active(X:S)) -> length(X:S) 216.95/219.17 length(mark(X:S)) -> length(X:S) 216.95/219.17 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.17 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.17 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.17 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.17 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.17 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.17 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.17 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.17 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.17 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.17 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.17 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.17 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.17 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.17 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.17 mark(0) -> active(0) 216.95/219.17 mark(nil) -> active(nil) 216.95/219.17 mark(tt) -> active(tt) 216.95/219.17 mark(zeros) -> active(zeros) 216.95/219.17 s(active(X:S)) -> s(X:S) 216.95/219.17 s(mark(X:S)) -> s(X:S) 216.95/219.17 ->Projection: 216.95/219.17 pi(U51#) = 1 216.95/219.17 216.95/219.17 Problem 1.10: 216.95/219.17 216.95/219.17 SCC Processor: 216.95/219.17 -> Pairs: 216.95/219.17 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.17 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.17 -> Rules: 216.95/219.17 U11(active(X:S)) -> U11(X:S) 216.95/219.17 U11(mark(X:S)) -> U11(X:S) 216.95/219.17 U21(active(X:S)) -> U21(X:S) 216.95/219.17 U21(mark(X:S)) -> U21(X:S) 216.95/219.17 U31(active(X:S)) -> U31(X:S) 216.95/219.17 U31(mark(X:S)) -> U31(X:S) 216.95/219.17 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.17 U42(active(X:S)) -> U42(X:S) 216.95/219.17 U42(mark(X:S)) -> U42(X:S) 216.95/219.17 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.17 U52(active(X:S)) -> U52(X:S) 216.95/219.17 U52(mark(X:S)) -> U52(X:S) 216.95/219.17 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.17 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 ->->Cycle: 216.95/219.18 ->->-> Pairs: 216.95/219.18 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.18 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.18 ->->-> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 216.95/219.18 Problem 1.10: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U51#(X1:S,active(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.18 U51#(X1:S,mark(X2:S)) -> U51#(X1:S,X2:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U51#) = 2 216.95/219.18 216.95/219.18 Problem 1.10: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 Empty 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 There is no strongly connected component 216.95/219.18 216.95/219.18 The problem is finite. 216.95/219.18 216.95/219.18 Problem 1.11: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U42#(active(X:S)) -> U42#(X:S) 216.95/219.18 U42#(mark(X:S)) -> U42#(X:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U42#) = 1 216.95/219.18 216.95/219.18 Problem 1.11: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 Empty 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 There is no strongly connected component 216.95/219.18 216.95/219.18 The problem is finite. 216.95/219.18 216.95/219.18 Problem 1.12: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U41#(active(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.95/219.18 U41#(mark(X1:S),X2:S) -> U41#(X1:S,X2:S) 216.95/219.18 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U41#) = 1 216.95/219.18 216.95/219.18 Problem 1.12: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 ->->Cycle: 216.95/219.18 ->->-> Pairs: 216.95/219.18 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 ->->-> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 216.95/219.18 Problem 1.12: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U41#(X1:S,active(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 U41#(X1:S,mark(X2:S)) -> U41#(X1:S,X2:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U41#) = 2 216.95/219.18 216.95/219.18 Problem 1.12: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 Empty 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 There is no strongly connected component 216.95/219.18 216.95/219.18 The problem is finite. 216.95/219.18 216.95/219.18 Problem 1.13: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U31#(active(X:S)) -> U31#(X:S) 216.95/219.18 U31#(mark(X:S)) -> U31#(X:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U31#) = 1 216.95/219.18 216.95/219.18 Problem 1.13: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 Empty 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 There is no strongly connected component 216.95/219.18 216.95/219.18 The problem is finite. 216.95/219.18 216.95/219.18 Problem 1.14: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U21#(active(X:S)) -> U21#(X:S) 216.95/219.18 U21#(mark(X:S)) -> U21#(X:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U21#) = 1 216.95/219.18 216.95/219.18 Problem 1.14: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 Empty 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 There is no strongly connected component 216.95/219.18 216.95/219.18 The problem is finite. 216.95/219.18 216.95/219.18 Problem 1.15: 216.95/219.18 216.95/219.18 Subterm Processor: 216.95/219.18 -> Pairs: 216.95/219.18 U11#(active(X:S)) -> U11#(X:S) 216.95/219.18 U11#(mark(X:S)) -> U11#(X:S) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Projection: 216.95/219.18 pi(U11#) = 1 216.95/219.18 216.95/219.18 Problem 1.15: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 Empty 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 There is no strongly connected component 216.95/219.18 216.95/219.18 The problem is finite. 216.95/219.18 216.95/219.18 Problem 1.16: 216.95/219.18 216.95/219.18 Reduction Pairs Processor: 216.95/219.18 -> Pairs: 216.95/219.18 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.18 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.18 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.18 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.18 ACTIVE(isNat(length(V1:S))) -> MARK(U11(isNatList(V1:S))) 216.95/219.18 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.18 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.18 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.95/219.18 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.18 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.18 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.18 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.18 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.18 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.18 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.18 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.18 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.18 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.18 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.18 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.18 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.18 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.18 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.18 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.18 MARK(length(X:S)) -> MARK(X:S) 216.95/219.18 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.18 MARK(s(X:S)) -> MARK(X:S) 216.95/219.18 MARK(zeros) -> ACTIVE(zeros) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 -> Usable rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Interpretation type: 216.95/219.18 Linear 216.95/219.18 ->Coefficients: 216.95/219.18 Natural Numbers 216.95/219.18 ->Dimension: 216.95/219.18 1 216.95/219.18 ->Bound: 216.95/219.18 2 216.95/219.18 ->Interpretation: 216.95/219.18 216.95/219.18 [U11](X) = X + 2 216.95/219.18 [U21](X) = X 216.95/219.18 [U31](X) = X 216.95/219.18 [U41](X1,X2) = X1 + 2.X2 216.95/219.18 [U42](X) = X 216.95/219.18 [U51](X1,X2) = X1 + 2.X2 216.95/219.18 [U52](X) = X 216.95/219.18 [U61](X1,X2,X3) = X1 + X2 + 2.X3 216.95/219.18 [U62](X1,X2) = X1 + X2 216.95/219.18 [active](X) = X 216.95/219.18 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.18 [isNat](X) = 2.X + 2 216.95/219.18 [isNatIList](X) = 2.X + 2 216.95/219.18 [isNatList](X) = X + 2 216.95/219.18 [length](X) = X + 2 216.95/219.18 [mark](X) = X 216.95/219.18 [s](X) = X 216.95/219.18 [0] = 0 216.95/219.18 [fSNonEmpty] = 0 216.95/219.18 [nil] = 2 216.95/219.18 [tt] = 2 216.95/219.18 [zeros] = 0 216.95/219.18 [U11#](X) = 0 216.95/219.18 [U21#](X) = 0 216.95/219.18 [U31#](X) = 0 216.95/219.18 [U41#](X1,X2) = 0 216.95/219.18 [U42#](X) = 0 216.95/219.18 [U51#](X1,X2) = 0 216.95/219.18 [U52#](X) = 0 216.95/219.18 [U61#](X1,X2,X3) = 0 216.95/219.18 [U62#](X1,X2) = 0 216.95/219.18 [ACTIVE](X) = 2.X + 2 216.95/219.18 [CONS](X1,X2) = 0 216.95/219.18 [ISNAT](X) = 0 216.95/219.18 [ISNATILIST](X) = 0 216.95/219.18 [ISNATLIST](X) = 0 216.95/219.18 [LENGTH](X) = 0 216.95/219.18 [MARK](X) = 2.X + 2 216.95/219.18 [S](X) = 0 216.95/219.18 216.95/219.18 Problem 1.16: 216.95/219.18 216.95/219.18 SCC Processor: 216.95/219.18 -> Pairs: 216.95/219.18 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.18 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.18 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.18 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.18 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.18 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.18 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.95/219.18 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.18 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.18 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.18 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.18 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.18 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.18 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.18 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.18 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.18 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.18 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.18 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.18 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.18 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.18 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.18 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.18 MARK(length(X:S)) -> MARK(X:S) 216.95/219.18 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.18 MARK(s(X:S)) -> MARK(X:S) 216.95/219.18 MARK(zeros) -> ACTIVE(zeros) 216.95/219.18 -> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.18 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.18 active(isNat(0)) -> mark(tt) 216.95/219.18 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatIList(zeros)) -> mark(tt) 216.95/219.18 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.18 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.18 active(isNatList(nil)) -> mark(tt) 216.95/219.18 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 active(length(nil)) -> mark(0) 216.95/219.18 active(zeros) -> mark(cons(0,zeros)) 216.95/219.18 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.18 isNat(active(X:S)) -> isNat(X:S) 216.95/219.18 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.18 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.18 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.18 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.18 length(active(X:S)) -> length(X:S) 216.95/219.18 length(mark(X:S)) -> length(X:S) 216.95/219.18 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.18 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.18 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.18 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.18 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.18 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.18 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.18 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.18 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.18 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.18 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.18 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.18 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.18 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.18 mark(0) -> active(0) 216.95/219.18 mark(nil) -> active(nil) 216.95/219.18 mark(tt) -> active(tt) 216.95/219.18 mark(zeros) -> active(zeros) 216.95/219.18 s(active(X:S)) -> s(X:S) 216.95/219.18 s(mark(X:S)) -> s(X:S) 216.95/219.18 ->Strongly Connected Components: 216.95/219.18 ->->Cycle: 216.95/219.18 ->->-> Pairs: 216.95/219.18 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.18 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.18 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.18 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.18 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.18 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.18 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.95/219.18 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.18 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.18 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.18 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.18 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.18 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.18 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.18 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.18 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.18 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.18 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.18 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.18 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.18 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.18 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.18 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.18 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.18 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.18 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.18 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.18 MARK(length(X:S)) -> MARK(X:S) 216.95/219.18 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.18 MARK(s(X:S)) -> MARK(X:S) 216.95/219.18 MARK(zeros) -> ACTIVE(zeros) 216.95/219.18 ->->-> Rules: 216.95/219.18 U11(active(X:S)) -> U11(X:S) 216.95/219.18 U11(mark(X:S)) -> U11(X:S) 216.95/219.18 U21(active(X:S)) -> U21(X:S) 216.95/219.18 U21(mark(X:S)) -> U21(X:S) 216.95/219.18 U31(active(X:S)) -> U31(X:S) 216.95/219.18 U31(mark(X:S)) -> U31(X:S) 216.95/219.18 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.18 U42(active(X:S)) -> U42(X:S) 216.95/219.18 U42(mark(X:S)) -> U42(X:S) 216.95/219.18 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.18 U52(active(X:S)) -> U52(X:S) 216.95/219.18 U52(mark(X:S)) -> U52(X:S) 216.95/219.18 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.18 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.18 active(U11(tt)) -> mark(tt) 216.95/219.18 active(U21(tt)) -> mark(tt) 216.95/219.18 active(U31(tt)) -> mark(tt) 216.95/219.18 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.18 active(U42(tt)) -> mark(tt) 216.95/219.18 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.18 active(U52(tt)) -> mark(tt) 216.95/219.18 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.18 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.18 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 Reduction Pairs Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatIList(V:S)) -> MARK(U31(isNatList(V:S))) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 -> Usable rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Interpretation type: 216.95/219.19 Linear 216.95/219.19 ->Coefficients: 216.95/219.19 Natural Numbers 216.95/219.19 ->Dimension: 216.95/219.19 1 216.95/219.19 ->Bound: 216.95/219.19 2 216.95/219.19 ->Interpretation: 216.95/219.19 216.95/219.19 [U11](X) = 2.X + 2 216.95/219.19 [U21](X) = X 216.95/219.19 [U31](X) = X + 1 216.95/219.19 [U41](X1,X2) = X1 + 2.X2 + 2 216.95/219.19 [U42](X) = X 216.95/219.19 [U51](X1,X2) = 2.X1 + 2.X2 216.95/219.19 [U52](X) = X 216.95/219.19 [U61](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 216.95/219.19 [U62](X1,X2) = X1 + 2.X2 + 2 216.95/219.19 [active](X) = X 216.95/219.19 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.19 [isNat](X) = 2.X 216.95/219.19 [isNatIList](X) = 2.X + 2 216.95/219.19 [isNatList](X) = 2.X 216.95/219.19 [length](X) = 2.X + 2 216.95/219.19 [mark](X) = X 216.95/219.19 [s](X) = X 216.95/219.19 [0] = 0 216.95/219.19 [fSNonEmpty] = 0 216.95/219.19 [nil] = 2 216.95/219.19 [tt] = 0 216.95/219.19 [zeros] = 0 216.95/219.19 [U11#](X) = 0 216.95/219.19 [U21#](X) = 0 216.95/219.19 [U31#](X) = 0 216.95/219.19 [U41#](X1,X2) = 0 216.95/219.19 [U42#](X) = 0 216.95/219.19 [U51#](X1,X2) = 0 216.95/219.19 [U52#](X) = 0 216.95/219.19 [U61#](X1,X2,X3) = 0 216.95/219.19 [U62#](X1,X2) = 0 216.95/219.19 [ACTIVE](X) = 2.X + 2 216.95/219.19 [CONS](X1,X2) = 0 216.95/219.19 [ISNAT](X) = 0 216.95/219.19 [ISNATILIST](X) = 0 216.95/219.19 [ISNATLIST](X) = 0 216.95/219.19 [LENGTH](X) = 0 216.95/219.19 [MARK](X) = 2.X + 2 216.95/219.19 [S](X) = 0 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 SCC Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Strongly Connected Components: 216.95/219.19 ->->Cycle: 216.95/219.19 ->->-> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 ->->-> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 Reduction Pairs Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> ACTIVE(U11(mark(X:S))) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 -> Usable rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Interpretation type: 216.95/219.19 Linear 216.95/219.19 ->Coefficients: 216.95/219.19 Natural Numbers 216.95/219.19 ->Dimension: 216.95/219.19 1 216.95/219.19 ->Bound: 216.95/219.19 2 216.95/219.19 ->Interpretation: 216.95/219.19 216.95/219.19 [U11](X) = 0 216.95/219.19 [U21](X) = 1 216.95/219.19 [U31](X) = 1 216.95/219.19 [U41](X1,X2) = 1 216.95/219.19 [U42](X) = 1 216.95/219.19 [U51](X1,X2) = 1 216.95/219.19 [U52](X) = 1 216.95/219.19 [U61](X1,X2,X3) = 1 216.95/219.19 [U62](X1,X2) = 1 216.95/219.19 [active](X) = 2.X + 2 216.95/219.19 [cons](X1,X2) = 1 216.95/219.19 [isNat](X) = 1 216.95/219.19 [isNatIList](X) = 1 216.95/219.19 [isNatList](X) = 1 216.95/219.19 [length](X) = 1 216.95/219.19 [mark](X) = 2.X + 2 216.95/219.19 [s](X) = 0 216.95/219.19 [0] = 1 216.95/219.19 [fSNonEmpty] = 0 216.95/219.19 [nil] = 0 216.95/219.19 [tt] = 0 216.95/219.19 [zeros] = 1 216.95/219.19 [U11#](X) = 0 216.95/219.19 [U21#](X) = 0 216.95/219.19 [U31#](X) = 0 216.95/219.19 [U41#](X1,X2) = 0 216.95/219.19 [U42#](X) = 0 216.95/219.19 [U51#](X1,X2) = 0 216.95/219.19 [U52#](X) = 0 216.95/219.19 [U61#](X1,X2,X3) = 0 216.95/219.19 [U62#](X1,X2) = 0 216.95/219.19 [ACTIVE](X) = 2.X 216.95/219.19 [CONS](X1,X2) = 0 216.95/219.19 [ISNAT](X) = 0 216.95/219.19 [ISNATILIST](X) = 0 216.95/219.19 [ISNATLIST](X) = 0 216.95/219.19 [LENGTH](X) = 0 216.95/219.19 [MARK](X) = 2 216.95/219.19 [S](X) = 0 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 SCC Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Strongly Connected Components: 216.95/219.19 ->->Cycle: 216.95/219.19 ->->-> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 ->->-> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 Reduction Pairs Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U11(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 -> Usable rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Interpretation type: 216.95/219.19 Linear 216.95/219.19 ->Coefficients: 216.95/219.19 Natural Numbers 216.95/219.19 ->Dimension: 216.95/219.19 1 216.95/219.19 ->Bound: 216.95/219.19 2 216.95/219.19 ->Interpretation: 216.95/219.19 216.95/219.19 [U11](X) = X + 1 216.95/219.19 [U21](X) = X 216.95/219.19 [U31](X) = X 216.95/219.19 [U41](X1,X2) = X1 + 2.X2 216.95/219.19 [U42](X) = X 216.95/219.19 [U51](X1,X2) = X1 + 2.X2 216.95/219.19 [U52](X) = X 216.95/219.19 [U61](X1,X2,X3) = X1 + 2.X2 + 2.X3 216.95/219.19 [U62](X1,X2) = X1 + 2.X2 216.95/219.19 [active](X) = X 216.95/219.19 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.19 [isNat](X) = 2.X + 2 216.95/219.19 [isNatIList](X) = 2.X + 2 216.95/219.19 [isNatList](X) = X + 2 216.95/219.19 [length](X) = 2.X + 2 216.95/219.19 [mark](X) = X 216.95/219.19 [s](X) = X 216.95/219.19 [0] = 0 216.95/219.19 [fSNonEmpty] = 0 216.95/219.19 [nil] = 1 216.95/219.19 [tt] = 2 216.95/219.19 [zeros] = 0 216.95/219.19 [U11#](X) = 0 216.95/219.19 [U21#](X) = 0 216.95/219.19 [U31#](X) = 0 216.95/219.19 [U41#](X1,X2) = 0 216.95/219.19 [U42#](X) = 0 216.95/219.19 [U51#](X1,X2) = 0 216.95/219.19 [U52#](X) = 0 216.95/219.19 [U61#](X1,X2,X3) = 0 216.95/219.19 [U62#](X1,X2) = 0 216.95/219.19 [ACTIVE](X) = 2.X + 2 216.95/219.19 [CONS](X1,X2) = 0 216.95/219.19 [ISNAT](X) = 0 216.95/219.19 [ISNATILIST](X) = 0 216.95/219.19 [ISNATLIST](X) = 0 216.95/219.19 [LENGTH](X) = 0 216.95/219.19 [MARK](X) = 2.X + 2 216.95/219.19 [S](X) = 0 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 SCC Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Strongly Connected Components: 216.95/219.19 ->->Cycle: 216.95/219.19 ->->-> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 ->->-> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 Reduction Pairs Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U21(X:S)) -> ACTIVE(U21(mark(X:S))) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 -> Usable rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Interpretation type: 216.95/219.19 Linear 216.95/219.19 ->Coefficients: 216.95/219.19 Natural Numbers 216.95/219.19 ->Dimension: 216.95/219.19 1 216.95/219.19 ->Bound: 216.95/219.19 2 216.95/219.19 ->Interpretation: 216.95/219.19 216.95/219.19 [U11](X) = 2 216.95/219.19 [U21](X) = 1 216.95/219.19 [U31](X) = 1 216.95/219.19 [U41](X1,X2) = 2 216.95/219.19 [U42](X) = 2 216.95/219.19 [U51](X1,X2) = 2 216.95/219.19 [U52](X) = 1 216.95/219.19 [U61](X1,X2,X3) = 2 216.95/219.19 [U62](X1,X2) = 2 216.95/219.19 [active](X) = 2.X + 2 216.95/219.19 [cons](X1,X2) = 1 216.95/219.19 [isNat](X) = 2 216.95/219.19 [isNatIList](X) = 2 216.95/219.19 [isNatList](X) = 2 216.95/219.19 [length](X) = 2 216.95/219.19 [mark](X) = 2.X + 2 216.95/219.19 [s](X) = 1 216.95/219.19 [0] = 0 216.95/219.19 [fSNonEmpty] = 0 216.95/219.19 [nil] = 2 216.95/219.19 [tt] = 1 216.95/219.19 [zeros] = 2 216.95/219.19 [U11#](X) = 0 216.95/219.19 [U21#](X) = 0 216.95/219.19 [U31#](X) = 0 216.95/219.19 [U41#](X1,X2) = 0 216.95/219.19 [U42#](X) = 0 216.95/219.19 [U51#](X1,X2) = 0 216.95/219.19 [U52#](X) = 0 216.95/219.19 [U61#](X1,X2,X3) = 0 216.95/219.19 [U62#](X1,X2) = 0 216.95/219.19 [ACTIVE](X) = X 216.95/219.19 [CONS](X1,X2) = 0 216.95/219.19 [ISNAT](X) = 0 216.95/219.19 [ISNATILIST](X) = 0 216.95/219.19 [ISNATLIST](X) = 0 216.95/219.19 [LENGTH](X) = 0 216.95/219.19 [MARK](X) = 2 216.95/219.19 [S](X) = 0 216.95/219.19 216.95/219.19 Problem 1.16: 216.95/219.19 216.95/219.19 SCC Processor: 216.95/219.19 -> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 -> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.19 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.19 active(U42(tt)) -> mark(tt) 216.95/219.19 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.19 active(U52(tt)) -> mark(tt) 216.95/219.19 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.19 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.19 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.19 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.19 active(isNat(0)) -> mark(tt) 216.95/219.19 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatIList(zeros)) -> mark(tt) 216.95/219.19 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.19 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.19 active(isNatList(nil)) -> mark(tt) 216.95/219.19 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 active(length(nil)) -> mark(0) 216.95/219.19 active(zeros) -> mark(cons(0,zeros)) 216.95/219.19 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.19 isNat(active(X:S)) -> isNat(X:S) 216.95/219.19 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.19 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.19 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.19 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.19 length(active(X:S)) -> length(X:S) 216.95/219.19 length(mark(X:S)) -> length(X:S) 216.95/219.19 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.19 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.19 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.19 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.19 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.19 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.19 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.19 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.19 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.19 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.19 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.19 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.19 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.19 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.19 mark(0) -> active(0) 216.95/219.19 mark(nil) -> active(nil) 216.95/219.19 mark(tt) -> active(tt) 216.95/219.19 mark(zeros) -> active(zeros) 216.95/219.19 s(active(X:S)) -> s(X:S) 216.95/219.19 s(mark(X:S)) -> s(X:S) 216.95/219.19 ->Strongly Connected Components: 216.95/219.19 ->->Cycle: 216.95/219.19 ->->-> Pairs: 216.95/219.19 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.19 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.19 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.19 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.19 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.19 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.19 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.19 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.19 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.19 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.19 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.19 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.19 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.19 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.19 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.19 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.19 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.19 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.19 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.19 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.19 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.19 MARK(length(X:S)) -> MARK(X:S) 216.95/219.19 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.19 MARK(s(X:S)) -> MARK(X:S) 216.95/219.19 MARK(zeros) -> ACTIVE(zeros) 216.95/219.19 ->->-> Rules: 216.95/219.19 U11(active(X:S)) -> U11(X:S) 216.95/219.19 U11(mark(X:S)) -> U11(X:S) 216.95/219.19 U21(active(X:S)) -> U21(X:S) 216.95/219.19 U21(mark(X:S)) -> U21(X:S) 216.95/219.19 U31(active(X:S)) -> U31(X:S) 216.95/219.19 U31(mark(X:S)) -> U31(X:S) 216.95/219.19 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.19 U42(active(X:S)) -> U42(X:S) 216.95/219.19 U42(mark(X:S)) -> U42(X:S) 216.95/219.19 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.19 U52(active(X:S)) -> U52(X:S) 216.95/219.19 U52(mark(X:S)) -> U52(X:S) 216.95/219.19 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.19 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.19 active(U11(tt)) -> mark(tt) 216.95/219.19 active(U21(tt)) -> mark(tt) 216.95/219.19 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 Reduction Pairs Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U31(X:S)) -> ACTIVE(U31(mark(X:S))) 216.95/219.20 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 -> Usable rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Interpretation type: 216.95/219.20 Linear 216.95/219.20 ->Coefficients: 216.95/219.20 Natural Numbers 216.95/219.20 ->Dimension: 216.95/219.20 1 216.95/219.20 ->Bound: 216.95/219.20 2 216.95/219.20 ->Interpretation: 216.95/219.20 216.95/219.20 [U11](X) = 2 216.95/219.20 [U21](X) = 2 216.95/219.20 [U31](X) = 0 216.95/219.20 [U41](X1,X2) = 2 216.95/219.20 [U42](X) = 2 216.95/219.20 [U51](X1,X2) = 2 216.95/219.20 [U52](X) = 1 216.95/219.20 [U61](X1,X2,X3) = 2 216.95/219.20 [U62](X1,X2) = 2 216.95/219.20 [active](X) = 2 216.95/219.20 [cons](X1,X2) = 2 216.95/219.20 [isNat](X) = 2 216.95/219.20 [isNatIList](X) = 2 216.95/219.20 [isNatList](X) = 2 216.95/219.20 [length](X) = 2 216.95/219.20 [mark](X) = 2 216.95/219.20 [s](X) = 2 216.95/219.20 [0] = 0 216.95/219.20 [fSNonEmpty] = 0 216.95/219.20 [nil] = 2 216.95/219.20 [tt] = 2 216.95/219.20 [zeros] = 2 216.95/219.20 [U11#](X) = 0 216.95/219.20 [U21#](X) = 0 216.95/219.20 [U31#](X) = 0 216.95/219.20 [U41#](X1,X2) = 0 216.95/219.20 [U42#](X) = 0 216.95/219.20 [U51#](X1,X2) = 0 216.95/219.20 [U52#](X) = 0 216.95/219.20 [U61#](X1,X2,X3) = 0 216.95/219.20 [U62#](X1,X2) = 0 216.95/219.20 [ACTIVE](X) = X 216.95/219.20 [CONS](X1,X2) = 0 216.95/219.20 [ISNAT](X) = 0 216.95/219.20 [ISNATILIST](X) = 0 216.95/219.20 [ISNATLIST](X) = 0 216.95/219.20 [LENGTH](X) = 0 216.95/219.20 [MARK](X) = 2 216.95/219.20 [S](X) = 0 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 SCC Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Strongly Connected Components: 216.95/219.20 ->->Cycle: 216.95/219.20 ->->-> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 ->->-> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 Reduction Pairs Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U31(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 -> Usable rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Interpretation type: 216.95/219.20 Linear 216.95/219.20 ->Coefficients: 216.95/219.20 Natural Numbers 216.95/219.20 ->Dimension: 216.95/219.20 1 216.95/219.20 ->Bound: 216.95/219.20 2 216.95/219.20 ->Interpretation: 216.95/219.20 216.95/219.20 [U11](X) = 1 216.95/219.20 [U21](X) = X 216.95/219.20 [U31](X) = X + 1 216.95/219.20 [U41](X1,X2) = 2.X1 + 2.X2 216.95/219.20 [U42](X) = X 216.95/219.20 [U51](X1,X2) = X1 216.95/219.20 [U52](X) = X 216.95/219.20 [U61](X1,X2,X3) = 2.X1 + 2.X2 216.95/219.20 [U62](X1,X2) = 2.X1 + 2.X2 216.95/219.20 [active](X) = X 216.95/219.20 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.20 [isNat](X) = 1 216.95/219.20 [isNatIList](X) = 2.X + 2 216.95/219.20 [isNatList](X) = 1 216.95/219.20 [length](X) = 2.X + 2 216.95/219.20 [mark](X) = X 216.95/219.20 [s](X) = X 216.95/219.20 [0] = 0 216.95/219.20 [fSNonEmpty] = 0 216.95/219.20 [nil] = 2 216.95/219.20 [tt] = 1 216.95/219.20 [zeros] = 0 216.95/219.20 [U11#](X) = 0 216.95/219.20 [U21#](X) = 0 216.95/219.20 [U31#](X) = 0 216.95/219.20 [U41#](X1,X2) = 0 216.95/219.20 [U42#](X) = 0 216.95/219.20 [U51#](X1,X2) = 0 216.95/219.20 [U52#](X) = 0 216.95/219.20 [U61#](X1,X2,X3) = 0 216.95/219.20 [U62#](X1,X2) = 0 216.95/219.20 [ACTIVE](X) = 2.X + 2 216.95/219.20 [CONS](X1,X2) = 0 216.95/219.20 [ISNAT](X) = 0 216.95/219.20 [ISNATILIST](X) = 0 216.95/219.20 [ISNATLIST](X) = 0 216.95/219.20 [LENGTH](X) = 0 216.95/219.20 [MARK](X) = 2.X + 2 216.95/219.20 [S](X) = 0 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 SCC Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Strongly Connected Components: 216.95/219.20 ->->Cycle: 216.95/219.20 ->->-> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 ->->-> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 Reduction Pairs Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 -> Usable rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Interpretation type: 216.95/219.20 Linear 216.95/219.20 ->Coefficients: 216.95/219.20 Natural Numbers 216.95/219.20 ->Dimension: 216.95/219.20 1 216.95/219.20 ->Bound: 216.95/219.20 2 216.95/219.20 ->Interpretation: 216.95/219.20 216.95/219.20 [U11](X) = X 216.95/219.20 [U21](X) = X 216.95/219.20 [U31](X) = 2 216.95/219.20 [U41](X1,X2) = X1 + 2.X2 + 1 216.95/219.20 [U42](X) = X 216.95/219.20 [U51](X1,X2) = X1 216.95/219.20 [U52](X) = X 216.95/219.20 [U61](X1,X2,X3) = 2.X1 + 2.X2 216.95/219.20 [U62](X1,X2) = X1 + 2.X2 + 1 216.95/219.20 [active](X) = X 216.95/219.20 [cons](X1,X2) = X1 + 2.X2 216.95/219.20 [isNat](X) = 1 216.95/219.20 [isNatIList](X) = 2.X + 2 216.95/219.20 [isNatList](X) = 1 216.95/219.20 [length](X) = 2.X + 2 216.95/219.20 [mark](X) = X 216.95/219.20 [s](X) = X 216.95/219.20 [0] = 0 216.95/219.20 [fSNonEmpty] = 0 216.95/219.20 [nil] = 0 216.95/219.20 [tt] = 1 216.95/219.20 [zeros] = 0 216.95/219.20 [U11#](X) = 0 216.95/219.20 [U21#](X) = 0 216.95/219.20 [U31#](X) = 0 216.95/219.20 [U41#](X1,X2) = 0 216.95/219.20 [U42#](X) = 0 216.95/219.20 [U51#](X1,X2) = 0 216.95/219.20 [U52#](X) = 0 216.95/219.20 [U61#](X1,X2,X3) = 0 216.95/219.20 [U62#](X1,X2) = 0 216.95/219.20 [ACTIVE](X) = 2.X + 2 216.95/219.20 [CONS](X1,X2) = 0 216.95/219.20 [ISNAT](X) = 0 216.95/219.20 [ISNATILIST](X) = 0 216.95/219.20 [ISNATLIST](X) = 0 216.95/219.20 [LENGTH](X) = 0 216.95/219.20 [MARK](X) = 2.X + 2 216.95/219.20 [S](X) = 0 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 SCC Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Strongly Connected Components: 216.95/219.20 ->->Cycle: 216.95/219.20 ->->-> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 ->->-> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 Reduction Pairs Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U42(X:S)) -> ACTIVE(U42(mark(X:S))) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 -> Usable rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Interpretation type: 216.95/219.20 Linear 216.95/219.20 ->Coefficients: 216.95/219.20 Natural Numbers 216.95/219.20 ->Dimension: 216.95/219.20 1 216.95/219.20 ->Bound: 216.95/219.20 2 216.95/219.20 ->Interpretation: 216.95/219.20 216.95/219.20 [U11](X) = 1 216.95/219.20 [U21](X) = 1 216.95/219.20 [U31](X) = 1 216.95/219.20 [U41](X1,X2) = 1 216.95/219.20 [U42](X) = 0 216.95/219.20 [U51](X1,X2) = 1 216.95/219.20 [U52](X) = 1 216.95/219.20 [U61](X1,X2,X3) = 1 216.95/219.20 [U62](X1,X2) = 1 216.95/219.20 [active](X) = 2.X + 2 216.95/219.20 [cons](X1,X2) = 0 216.95/219.20 [isNat](X) = 1 216.95/219.20 [isNatIList](X) = 1 216.95/219.20 [isNatList](X) = 1 216.95/219.20 [length](X) = 1 216.95/219.20 [mark](X) = 2.X + 2 216.95/219.20 [s](X) = 1 216.95/219.20 [0] = 0 216.95/219.20 [fSNonEmpty] = 0 216.95/219.20 [nil] = 1 216.95/219.20 [tt] = 0 216.95/219.20 [zeros] = 1 216.95/219.20 [U11#](X) = 0 216.95/219.20 [U21#](X) = 0 216.95/219.20 [U31#](X) = 0 216.95/219.20 [U41#](X1,X2) = 0 216.95/219.20 [U42#](X) = 0 216.95/219.20 [U51#](X1,X2) = 0 216.95/219.20 [U52#](X) = 0 216.95/219.20 [U61#](X1,X2,X3) = 0 216.95/219.20 [U62#](X1,X2) = 0 216.95/219.20 [ACTIVE](X) = 2.X 216.95/219.20 [CONS](X1,X2) = 0 216.95/219.20 [ISNAT](X) = 0 216.95/219.20 [ISNATILIST](X) = 0 216.95/219.20 [ISNATLIST](X) = 0 216.95/219.20 [LENGTH](X) = 0 216.95/219.20 [MARK](X) = 2 216.95/219.20 [S](X) = 0 216.95/219.20 216.95/219.20 Problem 1.16: 216.95/219.20 216.95/219.20 SCC Processor: 216.95/219.20 -> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 -> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.20 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.20 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.20 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.20 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.20 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.20 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.20 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.20 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.20 mark(0) -> active(0) 216.95/219.20 mark(nil) -> active(nil) 216.95/219.20 mark(tt) -> active(tt) 216.95/219.20 mark(zeros) -> active(zeros) 216.95/219.20 s(active(X:S)) -> s(X:S) 216.95/219.20 s(mark(X:S)) -> s(X:S) 216.95/219.20 ->Strongly Connected Components: 216.95/219.20 ->->Cycle: 216.95/219.20 ->->-> Pairs: 216.95/219.20 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.20 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.20 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.20 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.20 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.20 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.20 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.20 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.20 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.20 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.20 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.20 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.20 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.20 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.20 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.20 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.20 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.20 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.20 MARK(length(X:S)) -> MARK(X:S) 216.95/219.20 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.20 MARK(s(X:S)) -> MARK(X:S) 216.95/219.20 MARK(zeros) -> ACTIVE(zeros) 216.95/219.20 ->->-> Rules: 216.95/219.20 U11(active(X:S)) -> U11(X:S) 216.95/219.20 U11(mark(X:S)) -> U11(X:S) 216.95/219.20 U21(active(X:S)) -> U21(X:S) 216.95/219.20 U21(mark(X:S)) -> U21(X:S) 216.95/219.20 U31(active(X:S)) -> U31(X:S) 216.95/219.20 U31(mark(X:S)) -> U31(X:S) 216.95/219.20 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.20 U42(active(X:S)) -> U42(X:S) 216.95/219.20 U42(mark(X:S)) -> U42(X:S) 216.95/219.20 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.20 U52(active(X:S)) -> U52(X:S) 216.95/219.20 U52(mark(X:S)) -> U52(X:S) 216.95/219.20 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.20 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.20 active(U11(tt)) -> mark(tt) 216.95/219.20 active(U21(tt)) -> mark(tt) 216.95/219.20 active(U31(tt)) -> mark(tt) 216.95/219.20 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.20 active(U42(tt)) -> mark(tt) 216.95/219.20 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.20 active(U52(tt)) -> mark(tt) 216.95/219.20 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.20 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.20 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.20 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.20 active(isNat(0)) -> mark(tt) 216.95/219.20 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatIList(zeros)) -> mark(tt) 216.95/219.20 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.20 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.20 active(isNatList(nil)) -> mark(tt) 216.95/219.20 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.20 active(length(nil)) -> mark(0) 216.95/219.20 active(zeros) -> mark(cons(0,zeros)) 216.95/219.20 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.20 isNat(active(X:S)) -> isNat(X:S) 216.95/219.20 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.20 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.20 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.20 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.20 length(active(X:S)) -> length(X:S) 216.95/219.20 length(mark(X:S)) -> length(X:S) 216.95/219.20 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.20 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.20 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.20 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.20 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.20 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 Reduction Pairs Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> ACTIVE(U52(mark(X:S))) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 -> Usable rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Interpretation type: 216.95/219.21 Linear 216.95/219.21 ->Coefficients: 216.95/219.21 Natural Numbers 216.95/219.21 ->Dimension: 216.95/219.21 1 216.95/219.21 ->Bound: 216.95/219.21 2 216.95/219.21 ->Interpretation: 216.95/219.21 216.95/219.21 [U11](X) = 2 216.95/219.21 [U21](X) = 2 216.95/219.21 [U31](X) = 2 216.95/219.21 [U41](X1,X2) = 1 216.95/219.21 [U42](X) = 2 216.95/219.21 [U51](X1,X2) = 1 216.95/219.21 [U52](X) = 0 216.95/219.21 [U61](X1,X2,X3) = 1 216.95/219.21 [U62](X1,X2) = 1 216.95/219.21 [active](X) = 2 216.95/219.21 [cons](X1,X2) = 1 216.95/219.21 [isNat](X) = 1 216.95/219.21 [isNatIList](X) = 1 216.95/219.21 [isNatList](X) = 1 216.95/219.21 [length](X) = 1 216.95/219.21 [mark](X) = 2 216.95/219.21 [s](X) = 0 216.95/219.21 [0] = 0 216.95/219.21 [fSNonEmpty] = 0 216.95/219.21 [nil] = 1 216.95/219.21 [tt] = 2 216.95/219.21 [zeros] = 1 216.95/219.21 [U11#](X) = 0 216.95/219.21 [U21#](X) = 0 216.95/219.21 [U31#](X) = 0 216.95/219.21 [U41#](X1,X2) = 0 216.95/219.21 [U42#](X) = 0 216.95/219.21 [U51#](X1,X2) = 0 216.95/219.21 [U52#](X) = 0 216.95/219.21 [U61#](X1,X2,X3) = 0 216.95/219.21 [U62#](X1,X2) = 0 216.95/219.21 [ACTIVE](X) = 2.X 216.95/219.21 [CONS](X1,X2) = 0 216.95/219.21 [ISNAT](X) = 0 216.95/219.21 [ISNATILIST](X) = 0 216.95/219.21 [ISNATLIST](X) = 0 216.95/219.21 [LENGTH](X) = 0 216.95/219.21 [MARK](X) = 2 216.95/219.21 [S](X) = 0 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 SCC Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Strongly Connected Components: 216.95/219.21 ->->Cycle: 216.95/219.21 ->->-> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 ->->-> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 Reduction Pairs Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> MARK(X1:S) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 -> Usable rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Interpretation type: 216.95/219.21 Linear 216.95/219.21 ->Coefficients: 216.95/219.21 Natural Numbers 216.95/219.21 ->Dimension: 216.95/219.21 1 216.95/219.21 ->Bound: 216.95/219.21 2 216.95/219.21 ->Interpretation: 216.95/219.21 216.95/219.21 [U11](X) = 1 216.95/219.21 [U21](X) = X 216.95/219.21 [U31](X) = 2.X 216.95/219.21 [U41](X1,X2) = 2.X2 + 2 216.95/219.21 [U42](X) = X 216.95/219.21 [U51](X1,X2) = X1 216.95/219.21 [U52](X) = X 216.95/219.21 [U61](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 216.95/219.21 [U62](X1,X2) = 2.X1 + 2.X2 216.95/219.21 [active](X) = X 216.95/219.21 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.21 [isNat](X) = 1 216.95/219.21 [isNatIList](X) = 2.X + 2 216.95/219.21 [isNatList](X) = 1 216.95/219.21 [length](X) = 2.X + 2 216.95/219.21 [mark](X) = X 216.95/219.21 [s](X) = X 216.95/219.21 [0] = 0 216.95/219.21 [fSNonEmpty] = 0 216.95/219.21 [nil] = 0 216.95/219.21 [tt] = 1 216.95/219.21 [zeros] = 0 216.95/219.21 [U11#](X) = 0 216.95/219.21 [U21#](X) = 0 216.95/219.21 [U31#](X) = 0 216.95/219.21 [U41#](X1,X2) = 0 216.95/219.21 [U42#](X) = 0 216.95/219.21 [U51#](X1,X2) = 0 216.95/219.21 [U52#](X) = 0 216.95/219.21 [U61#](X1,X2,X3) = 0 216.95/219.21 [U62#](X1,X2) = 0 216.95/219.21 [ACTIVE](X) = 2.X + 2 216.95/219.21 [CONS](X1,X2) = 0 216.95/219.21 [ISNAT](X) = 0 216.95/219.21 [ISNATILIST](X) = 0 216.95/219.21 [ISNATLIST](X) = 0 216.95/219.21 [LENGTH](X) = 0 216.95/219.21 [MARK](X) = 2.X + 2 216.95/219.21 [S](X) = 0 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 SCC Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Strongly Connected Components: 216.95/219.21 ->->Cycle: 216.95/219.21 ->->-> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 ->->-> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 Reduction Pairs Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 -> Usable rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Interpretation type: 216.95/219.21 Linear 216.95/219.21 ->Coefficients: 216.95/219.21 Natural Numbers 216.95/219.21 ->Dimension: 216.95/219.21 1 216.95/219.21 ->Bound: 216.95/219.21 2 216.95/219.21 ->Interpretation: 216.95/219.21 216.95/219.21 [U11](X) = 0 216.95/219.21 [U21](X) = X 216.95/219.21 [U31](X) = 2 216.95/219.21 [U41](X1,X2) = 2.X1 + 2.X2 + 2 216.95/219.21 [U42](X) = X 216.95/219.21 [U51](X1,X2) = X1 + 1 216.95/219.21 [U52](X) = X 216.95/219.21 [U61](X1,X2,X3) = 2.X2 + 2.X3 + 2 216.95/219.21 [U62](X1,X2) = 2.X1 + 2.X2 + 2 216.95/219.21 [active](X) = X 216.95/219.21 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.21 [isNat](X) = 0 216.95/219.21 [isNatIList](X) = 2.X + 2 216.95/219.21 [isNatList](X) = 1 216.95/219.21 [length](X) = 2.X + 2 216.95/219.21 [mark](X) = X 216.95/219.21 [s](X) = X 216.95/219.21 [0] = 0 216.95/219.21 [fSNonEmpty] = 0 216.95/219.21 [nil] = 2 216.95/219.21 [tt] = 0 216.95/219.21 [zeros] = 0 216.95/219.21 [U11#](X) = 0 216.95/219.21 [U21#](X) = 0 216.95/219.21 [U31#](X) = 0 216.95/219.21 [U41#](X1,X2) = 0 216.95/219.21 [U42#](X) = 0 216.95/219.21 [U51#](X1,X2) = 0 216.95/219.21 [U52#](X) = 0 216.95/219.21 [U61#](X1,X2,X3) = 0 216.95/219.21 [U62#](X1,X2) = 0 216.95/219.21 [ACTIVE](X) = 2.X + 2 216.95/219.21 [CONS](X1,X2) = 0 216.95/219.21 [ISNAT](X) = 0 216.95/219.21 [ISNATILIST](X) = 0 216.95/219.21 [ISNATLIST](X) = 0 216.95/219.21 [LENGTH](X) = 0 216.95/219.21 [MARK](X) = 2.X + 2 216.95/219.21 [S](X) = 0 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 SCC Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Strongly Connected Components: 216.95/219.21 ->->Cycle: 216.95/219.21 ->->-> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 ->->-> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 Reduction Pairs Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U61(tt,L:S,N:S)) -> MARK(U62(isNat(N:S),L:S)) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 -> Usable rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Interpretation type: 216.95/219.21 Linear 216.95/219.21 ->Coefficients: 216.95/219.21 Natural Numbers 216.95/219.21 ->Dimension: 216.95/219.21 1 216.95/219.21 ->Bound: 216.95/219.21 2 216.95/219.21 ->Interpretation: 216.95/219.21 216.95/219.21 [U11](X) = 2 216.95/219.21 [U21](X) = X 216.95/219.21 [U31](X) = 2.X 216.95/219.21 [U41](X1,X2) = X1 + 2.X2 216.95/219.21 [U42](X) = X 216.95/219.21 [U51](X1,X2) = X2 + 1 216.95/219.21 [U52](X) = X 216.95/219.21 [U61](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 216.95/219.21 [U62](X1,X2) = X1 + 2.X2 + 1 216.95/219.21 [active](X) = X 216.95/219.21 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.21 [isNat](X) = 2 216.95/219.21 [isNatIList](X) = 2.X + 2 216.95/219.21 [isNatList](X) = X + 1 216.95/219.21 [length](X) = 2.X + 2 216.95/219.21 [mark](X) = X 216.95/219.21 [s](X) = X 216.95/219.21 [0] = 0 216.95/219.21 [fSNonEmpty] = 0 216.95/219.21 [nil] = 1 216.95/219.21 [tt] = 2 216.95/219.21 [zeros] = 0 216.95/219.21 [U11#](X) = 0 216.95/219.21 [U21#](X) = 0 216.95/219.21 [U31#](X) = 0 216.95/219.21 [U41#](X1,X2) = 0 216.95/219.21 [U42#](X) = 0 216.95/219.21 [U51#](X1,X2) = 0 216.95/219.21 [U52#](X) = 0 216.95/219.21 [U61#](X1,X2,X3) = 0 216.95/219.21 [U62#](X1,X2) = 0 216.95/219.21 [ACTIVE](X) = 2.X + 2 216.95/219.21 [CONS](X1,X2) = 0 216.95/219.21 [ISNAT](X) = 0 216.95/219.21 [ISNATILIST](X) = 0 216.95/219.21 [ISNATLIST](X) = 0 216.95/219.21 [LENGTH](X) = 0 216.95/219.21 [MARK](X) = 2.X + 2 216.95/219.21 [S](X) = 0 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 SCC Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 ->Strongly Connected Components: 216.95/219.21 ->->Cycle: 216.95/219.21 ->->-> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 ->->-> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.21 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.21 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.21 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.21 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.21 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.21 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.21 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.21 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.21 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.21 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.21 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.21 mark(0) -> active(0) 216.95/219.21 mark(nil) -> active(nil) 216.95/219.21 mark(tt) -> active(tt) 216.95/219.21 mark(zeros) -> active(zeros) 216.95/219.21 s(active(X:S)) -> s(X:S) 216.95/219.21 s(mark(X:S)) -> s(X:S) 216.95/219.21 216.95/219.21 Problem 1.16: 216.95/219.21 216.95/219.21 Reduction Pairs Processor: 216.95/219.21 -> Pairs: 216.95/219.21 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.21 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.21 ACTIVE(U62(tt,L:S)) -> MARK(s(length(L:S))) 216.95/219.21 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.21 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.21 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.21 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.21 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.21 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.21 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.21 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.21 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.21 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.21 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.21 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.21 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.21 MARK(length(X:S)) -> MARK(X:S) 216.95/219.21 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.21 MARK(s(X:S)) -> MARK(X:S) 216.95/219.21 MARK(zeros) -> ACTIVE(zeros) 216.95/219.21 -> Rules: 216.95/219.21 U11(active(X:S)) -> U11(X:S) 216.95/219.21 U11(mark(X:S)) -> U11(X:S) 216.95/219.21 U21(active(X:S)) -> U21(X:S) 216.95/219.21 U21(mark(X:S)) -> U21(X:S) 216.95/219.21 U31(active(X:S)) -> U31(X:S) 216.95/219.21 U31(mark(X:S)) -> U31(X:S) 216.95/219.21 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.21 U42(active(X:S)) -> U42(X:S) 216.95/219.21 U42(mark(X:S)) -> U42(X:S) 216.95/219.21 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.21 U52(active(X:S)) -> U52(X:S) 216.95/219.21 U52(mark(X:S)) -> U52(X:S) 216.95/219.21 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.21 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.21 active(U11(tt)) -> mark(tt) 216.95/219.21 active(U21(tt)) -> mark(tt) 216.95/219.21 active(U31(tt)) -> mark(tt) 216.95/219.21 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.21 active(U42(tt)) -> mark(tt) 216.95/219.21 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.21 active(U52(tt)) -> mark(tt) 216.95/219.21 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.21 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.21 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.21 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.21 active(isNat(0)) -> mark(tt) 216.95/219.21 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatIList(zeros)) -> mark(tt) 216.95/219.21 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.21 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.21 active(isNatList(nil)) -> mark(tt) 216.95/219.21 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.21 active(length(nil)) -> mark(0) 216.95/219.21 active(zeros) -> mark(cons(0,zeros)) 216.95/219.21 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.21 isNat(active(X:S)) -> isNat(X:S) 216.95/219.21 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.21 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.21 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.21 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.21 length(active(X:S)) -> length(X:S) 216.95/219.21 length(mark(X:S)) -> length(X:S) 216.95/219.21 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.21 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.21 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 -> Usable rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Interpretation type: 216.95/219.22 Linear 216.95/219.22 ->Coefficients: 216.95/219.22 Natural Numbers 216.95/219.22 ->Dimension: 216.95/219.22 1 216.95/219.22 ->Bound: 216.95/219.22 2 216.95/219.22 ->Interpretation: 216.95/219.22 216.95/219.22 [U11](X) = 2.X + 2 216.95/219.22 [U21](X) = X 216.95/219.22 [U31](X) = 2.X + 2 216.95/219.22 [U41](X1,X2) = X1 + 2.X2 216.95/219.22 [U42](X) = X 216.95/219.22 [U51](X1,X2) = 2.X2 216.95/219.22 [U52](X) = X 216.95/219.22 [U61](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 216.95/219.22 [U62](X1,X2) = X1 + 2.X2 216.95/219.22 [active](X) = X 216.95/219.22 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.22 [isNat](X) = 2.X + 2 216.95/219.22 [isNatIList](X) = 2.X + 2 216.95/219.22 [isNatList](X) = X 216.95/219.22 [length](X) = 2.X + 1 216.95/219.22 [mark](X) = X 216.95/219.22 [s](X) = X 216.95/219.22 [0] = 0 216.95/219.22 [fSNonEmpty] = 0 216.95/219.22 [nil] = 2 216.95/219.22 [tt] = 2 216.95/219.22 [zeros] = 0 216.95/219.22 [U11#](X) = 0 216.95/219.22 [U21#](X) = 0 216.95/219.22 [U31#](X) = 0 216.95/219.22 [U41#](X1,X2) = 0 216.95/219.22 [U42#](X) = 0 216.95/219.22 [U51#](X1,X2) = 0 216.95/219.22 [U52#](X) = 0 216.95/219.22 [U61#](X1,X2,X3) = 0 216.95/219.22 [U62#](X1,X2) = 0 216.95/219.22 [ACTIVE](X) = 2.X + 2 216.95/219.22 [CONS](X1,X2) = 0 216.95/219.22 [ISNAT](X) = 0 216.95/219.22 [ISNATILIST](X) = 0 216.95/219.22 [ISNATLIST](X) = 0 216.95/219.22 [LENGTH](X) = 0 216.95/219.22 [MARK](X) = 2.X + 2 216.95/219.22 [S](X) = 0 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 SCC Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Strongly Connected Components: 216.95/219.22 ->->Cycle: 216.95/219.22 ->->-> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 ->->-> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 Reduction Pairs Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNat(s(V1:S))) -> MARK(U21(isNat(V1:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 -> Usable rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Interpretation type: 216.95/219.22 Linear 216.95/219.22 ->Coefficients: 216.95/219.22 Natural Numbers 216.95/219.22 ->Dimension: 216.95/219.22 1 216.95/219.22 ->Bound: 216.95/219.22 2 216.95/219.22 ->Interpretation: 216.95/219.22 216.95/219.22 [U11](X) = 2.X + 2 216.95/219.22 [U21](X) = X + 2 216.95/219.22 [U31](X) = X + 1 216.95/219.22 [U41](X1,X2) = 2.X2 + 2 216.95/219.22 [U42](X) = X 216.95/219.22 [U51](X1,X2) = 2.X2 + 1 216.95/219.22 [U52](X) = X 216.95/219.22 [U61](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 216.95/219.22 [U62](X1,X2) = X1 + 2.X2 + 2 216.95/219.22 [active](X) = X 216.95/219.22 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.22 [isNat](X) = 2.X + 2 216.95/219.22 [isNatIList](X) = 2.X + 2 216.95/219.22 [isNatList](X) = X + 1 216.95/219.22 [length](X) = 2.X + 2 216.95/219.22 [mark](X) = X 216.95/219.22 [s](X) = X + 2 216.95/219.22 [0] = 0 216.95/219.22 [fSNonEmpty] = 0 216.95/219.22 [nil] = 2 216.95/219.22 [tt] = 2 216.95/219.22 [zeros] = 0 216.95/219.22 [U11#](X) = 0 216.95/219.22 [U21#](X) = 0 216.95/219.22 [U31#](X) = 0 216.95/219.22 [U41#](X1,X2) = 0 216.95/219.22 [U42#](X) = 0 216.95/219.22 [U51#](X1,X2) = 0 216.95/219.22 [U52#](X) = 0 216.95/219.22 [U61#](X1,X2,X3) = 0 216.95/219.22 [U62#](X1,X2) = 0 216.95/219.22 [ACTIVE](X) = 2.X + 2 216.95/219.22 [CONS](X1,X2) = 0 216.95/219.22 [ISNAT](X) = 0 216.95/219.22 [ISNATILIST](X) = 0 216.95/219.22 [ISNATLIST](X) = 0 216.95/219.22 [LENGTH](X) = 0 216.95/219.22 [MARK](X) = 2.X + 2 216.95/219.22 [S](X) = 0 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 SCC Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNat(X:S)) -> ACTIVE(isNat(X:S)) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Strongly Connected Components: 216.95/219.22 ->->Cycle: 216.95/219.22 ->->-> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 ->->-> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 Reduction Pairs Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(length(cons(N:S,L:S))) -> MARK(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 -> Usable rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Interpretation type: 216.95/219.22 Linear 216.95/219.22 ->Coefficients: 216.95/219.22 Natural Numbers 216.95/219.22 ->Dimension: 216.95/219.22 1 216.95/219.22 ->Bound: 216.95/219.22 2 216.95/219.22 ->Interpretation: 216.95/219.22 216.95/219.22 [U11](X) = 2 216.95/219.22 [U21](X) = X + 2 216.95/219.22 [U31](X) = 2.X + 2 216.95/219.22 [U41](X1,X2) = 2.X2 + 2 216.95/219.22 [U42](X) = X 216.95/219.22 [U51](X1,X2) = 2.X2 216.95/219.22 [U52](X) = 2.X 216.95/219.22 [U61](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 216.95/219.22 [U62](X1,X2) = 2.X1 + 2.X2 + 1 216.95/219.22 [active](X) = X 216.95/219.22 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.22 [isNat](X) = X + 2 216.95/219.22 [isNatIList](X) = 2.X + 2 216.95/219.22 [isNatList](X) = X 216.95/219.22 [length](X) = 2.X + 2 216.95/219.22 [mark](X) = X 216.95/219.22 [s](X) = X + 2 216.95/219.22 [0] = 0 216.95/219.22 [fSNonEmpty] = 0 216.95/219.22 [nil] = 2 216.95/219.22 [tt] = 2 216.95/219.22 [zeros] = 0 216.95/219.22 [U11#](X) = 0 216.95/219.22 [U21#](X) = 0 216.95/219.22 [U31#](X) = 0 216.95/219.22 [U41#](X1,X2) = 0 216.95/219.22 [U42#](X) = 0 216.95/219.22 [U51#](X1,X2) = 0 216.95/219.22 [U52#](X) = 0 216.95/219.22 [U61#](X1,X2,X3) = 0 216.95/219.22 [U62#](X1,X2) = 0 216.95/219.22 [ACTIVE](X) = 2.X + 2 216.95/219.22 [CONS](X1,X2) = 0 216.95/219.22 [ISNAT](X) = 0 216.95/219.22 [ISNATILIST](X) = 0 216.95/219.22 [ISNATLIST](X) = 0 216.95/219.22 [LENGTH](X) = 0 216.95/219.22 [MARK](X) = 2.X + 2 216.95/219.22 [S](X) = 0 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 SCC Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Strongly Connected Components: 216.95/219.22 ->->Cycle: 216.95/219.22 ->->-> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 ->->-> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 Reduction Pairs Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U21(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 -> Usable rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Interpretation type: 216.95/219.22 Linear 216.95/219.22 ->Coefficients: 216.95/219.22 Natural Numbers 216.95/219.22 ->Dimension: 216.95/219.22 1 216.95/219.22 ->Bound: 216.95/219.22 2 216.95/219.22 ->Interpretation: 216.95/219.22 216.95/219.22 [U11](X) = 2 216.95/219.22 [U21](X) = X + 1 216.95/219.22 [U31](X) = 2.X + 1 216.95/219.22 [U41](X1,X2) = X1 + 2.X2 216.95/219.22 [U42](X) = X 216.95/219.22 [U51](X1,X2) = 2.X2 216.95/219.22 [U52](X) = 2.X 216.95/219.22 [U61](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 216.95/219.22 [U62](X1,X2) = 2.X1 + 2.X2 + 2 216.95/219.22 [active](X) = X 216.95/219.22 [cons](X1,X2) = X1 + 2.X2 216.95/219.22 [isNat](X) = X + 2 216.95/219.22 [isNatIList](X) = 2.X + 2 216.95/219.22 [isNatList](X) = X 216.95/219.22 [length](X) = 2.X + 2 216.95/219.22 [mark](X) = X 216.95/219.22 [s](X) = X + 2 216.95/219.22 [0] = 0 216.95/219.22 [fSNonEmpty] = 0 216.95/219.22 [nil] = 2 216.95/219.22 [tt] = 2 216.95/219.22 [zeros] = 0 216.95/219.22 [U11#](X) = 0 216.95/219.22 [U21#](X) = 0 216.95/219.22 [U31#](X) = 0 216.95/219.22 [U41#](X1,X2) = 0 216.95/219.22 [U42#](X) = 0 216.95/219.22 [U51#](X1,X2) = 0 216.95/219.22 [U52#](X) = 0 216.95/219.22 [U61#](X1,X2,X3) = 0 216.95/219.22 [U62#](X1,X2) = 0 216.95/219.22 [ACTIVE](X) = 2.X + 2 216.95/219.22 [CONS](X1,X2) = 0 216.95/219.22 [ISNAT](X) = 0 216.95/219.22 [ISNATILIST](X) = 0 216.95/219.22 [ISNATLIST](X) = 0 216.95/219.22 [LENGTH](X) = 0 216.95/219.22 [MARK](X) = 2.X + 2 216.95/219.22 [S](X) = 0 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 SCC Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Strongly Connected Components: 216.95/219.22 ->->Cycle: 216.95/219.22 ->->-> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 ->->-> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 Reduction Pairs Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.22 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.22 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.22 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.22 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.22 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.22 MARK(U61(X1:S,X2:S,X3:S)) -> ACTIVE(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.22 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.22 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.22 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.22 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.22 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.22 MARK(length(X:S)) -> MARK(X:S) 216.95/219.22 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.22 MARK(s(X:S)) -> MARK(X:S) 216.95/219.22 MARK(zeros) -> ACTIVE(zeros) 216.95/219.22 -> Rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 -> Usable rules: 216.95/219.22 U11(active(X:S)) -> U11(X:S) 216.95/219.22 U11(mark(X:S)) -> U11(X:S) 216.95/219.22 U21(active(X:S)) -> U21(X:S) 216.95/219.22 U21(mark(X:S)) -> U21(X:S) 216.95/219.22 U31(active(X:S)) -> U31(X:S) 216.95/219.22 U31(mark(X:S)) -> U31(X:S) 216.95/219.22 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.22 U42(active(X:S)) -> U42(X:S) 216.95/219.22 U42(mark(X:S)) -> U42(X:S) 216.95/219.22 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.22 U52(active(X:S)) -> U52(X:S) 216.95/219.22 U52(mark(X:S)) -> U52(X:S) 216.95/219.22 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.22 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.22 active(U11(tt)) -> mark(tt) 216.95/219.22 active(U21(tt)) -> mark(tt) 216.95/219.22 active(U31(tt)) -> mark(tt) 216.95/219.22 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.22 active(U42(tt)) -> mark(tt) 216.95/219.22 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.22 active(U52(tt)) -> mark(tt) 216.95/219.22 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.22 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.22 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.22 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.22 active(isNat(0)) -> mark(tt) 216.95/219.22 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatIList(zeros)) -> mark(tt) 216.95/219.22 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.22 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.22 active(isNatList(nil)) -> mark(tt) 216.95/219.22 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.22 active(length(nil)) -> mark(0) 216.95/219.22 active(zeros) -> mark(cons(0,zeros)) 216.95/219.22 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.22 isNat(active(X:S)) -> isNat(X:S) 216.95/219.22 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.22 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.22 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.22 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.22 length(active(X:S)) -> length(X:S) 216.95/219.22 length(mark(X:S)) -> length(X:S) 216.95/219.22 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.22 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.22 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.22 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.22 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.22 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.22 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.22 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.22 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.22 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.22 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.22 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.22 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.22 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.22 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.22 mark(0) -> active(0) 216.95/219.22 mark(nil) -> active(nil) 216.95/219.22 mark(tt) -> active(tt) 216.95/219.22 mark(zeros) -> active(zeros) 216.95/219.22 s(active(X:S)) -> s(X:S) 216.95/219.22 s(mark(X:S)) -> s(X:S) 216.95/219.22 ->Interpretation type: 216.95/219.22 Linear 216.95/219.22 ->Coefficients: 216.95/219.22 Natural Numbers 216.95/219.22 ->Dimension: 216.95/219.22 1 216.95/219.22 ->Bound: 216.95/219.22 2 216.95/219.22 ->Interpretation: 216.95/219.22 216.95/219.22 [U11](X) = 2.X 216.95/219.22 [U21](X) = X 216.95/219.22 [U31](X) = 0 216.95/219.22 [U41](X1,X2) = 2.X1 216.95/219.22 [U42](X) = 2.X 216.95/219.22 [U51](X1,X2) = 2.X1 216.95/219.22 [U52](X) = 2.X 216.95/219.22 [U61](X1,X2,X3) = 2.X2 + 2.X3 + 2 216.95/219.22 [U62](X1,X2) = 2.X1 + 2.X2 + 2 216.95/219.22 [active](X) = X 216.95/219.22 [cons](X1,X2) = 2.X1 + 2.X2 216.95/219.22 [isNat](X) = 0 216.95/219.22 [isNatIList](X) = 0 216.95/219.22 [isNatList](X) = 0 216.95/219.22 [length](X) = 2.X + 2 216.95/219.22 [mark](X) = X 216.95/219.22 [s](X) = X 216.95/219.22 [0] = 0 216.95/219.22 [fSNonEmpty] = 0 216.95/219.22 [nil] = 2 216.95/219.22 [tt] = 0 216.95/219.22 [zeros] = 0 216.95/219.22 [U11#](X) = 0 216.95/219.22 [U21#](X) = 0 216.95/219.22 [U31#](X) = 0 216.95/219.22 [U41#](X1,X2) = 0 216.95/219.22 [U42#](X) = 0 216.95/219.22 [U51#](X1,X2) = 0 216.95/219.22 [U52#](X) = 0 216.95/219.22 [U61#](X1,X2,X3) = 0 216.95/219.22 [U62#](X1,X2) = 0 216.95/219.22 [ACTIVE](X) = 2 216.95/219.22 [CONS](X1,X2) = 0 216.95/219.22 [ISNAT](X) = 0 216.95/219.22 [ISNATILIST](X) = 0 216.95/219.22 [ISNATLIST](X) = 0 216.95/219.22 [LENGTH](X) = 0 216.95/219.22 [MARK](X) = 2.X + 2 216.95/219.22 [S](X) = 0 216.95/219.22 216.95/219.22 Problem 1.16: 216.95/219.22 216.95/219.22 SCC Processor: 216.95/219.22 -> Pairs: 216.95/219.22 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.22 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Strongly Connected Components: 216.95/219.23 ->->Cycle: 216.95/219.23 ->->-> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 ->->-> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 Reduction Pairs Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> ACTIVE(U62(mark(X1:S),X2:S)) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 -> Usable rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Interpretation type: 216.95/219.23 Linear 216.95/219.23 ->Coefficients: 216.95/219.23 Natural Numbers 216.95/219.23 ->Dimension: 216.95/219.23 1 216.95/219.23 ->Bound: 216.95/219.23 2 216.95/219.23 ->Interpretation: 216.95/219.23 216.95/219.23 [U11](X) = 2 216.95/219.23 [U21](X) = 2 216.95/219.23 [U31](X) = 2 216.95/219.23 [U41](X1,X2) = 2 216.95/219.23 [U42](X) = 2 216.95/219.23 [U51](X1,X2) = 2 216.95/219.23 [U52](X) = 2 216.95/219.23 [U61](X1,X2,X3) = 2 216.95/219.23 [U62](X1,X2) = 1 216.95/219.23 [active](X) = 2.X + 2 216.95/219.23 [cons](X1,X2) = 2 216.95/219.23 [isNat](X) = 2.X + 2 216.95/219.23 [isNatIList](X) = 2 216.95/219.23 [isNatList](X) = 2 216.95/219.23 [length](X) = 2 216.95/219.23 [mark](X) = 2.X + 2 216.95/219.23 [s](X) = 1 216.95/219.23 [0] = 2 216.95/219.23 [fSNonEmpty] = 0 216.95/219.23 [nil] = 2 216.95/219.23 [tt] = 2 216.95/219.23 [zeros] = 2 216.95/219.23 [U11#](X) = 0 216.95/219.23 [U21#](X) = 0 216.95/219.23 [U31#](X) = 0 216.95/219.23 [U41#](X1,X2) = 0 216.95/219.23 [U42#](X) = 0 216.95/219.23 [U51#](X1,X2) = 0 216.95/219.23 [U52#](X) = 0 216.95/219.23 [U61#](X1,X2,X3) = 0 216.95/219.23 [U62#](X1,X2) = 0 216.95/219.23 [ACTIVE](X) = X 216.95/219.23 [CONS](X1,X2) = 0 216.95/219.23 [ISNAT](X) = 0 216.95/219.23 [ISNATILIST](X) = 0 216.95/219.23 [ISNATLIST](X) = 0 216.95/219.23 [LENGTH](X) = 0 216.95/219.23 [MARK](X) = 2 216.95/219.23 [S](X) = 0 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 SCC Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Strongly Connected Components: 216.95/219.23 ->->Cycle: 216.95/219.23 ->->-> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 ->->-> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 Reduction Pairs Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U62(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 -> Usable rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Interpretation type: 216.95/219.23 Linear 216.95/219.23 ->Coefficients: 216.95/219.23 Natural Numbers 216.95/219.23 ->Dimension: 216.95/219.23 1 216.95/219.23 ->Bound: 216.95/219.23 2 216.95/219.23 ->Interpretation: 216.95/219.23 216.95/219.23 [U11](X) = 2 216.95/219.23 [U21](X) = X 216.95/219.23 [U31](X) = 2 216.95/219.23 [U41](X1,X2) = 2.X2 + 2 216.95/219.23 [U42](X) = X 216.95/219.23 [U51](X1,X2) = X1 + 2.X2 + 1 216.95/219.23 [U52](X) = X 216.95/219.23 [U61](X1,X2,X3) = 2.X2 + 2.X3 + 2 216.95/219.23 [U62](X1,X2) = X1 + 2.X2 + 1 216.95/219.23 [active](X) = X 216.95/219.23 [cons](X1,X2) = X1 + 2.X2 216.95/219.23 [isNat](X) = 2.X + 1 216.95/219.23 [isNatIList](X) = X + 2 216.95/219.23 [isNatList](X) = 2.X + 2 216.95/219.23 [length](X) = 2.X + 2 216.95/219.23 [mark](X) = X 216.95/219.23 [s](X) = X 216.95/219.23 [0] = 0 216.95/219.23 [fSNonEmpty] = 0 216.95/219.23 [nil] = 2 216.95/219.23 [tt] = 1 216.95/219.23 [zeros] = 0 216.95/219.23 [U11#](X) = 0 216.95/219.23 [U21#](X) = 0 216.95/219.23 [U31#](X) = 0 216.95/219.23 [U41#](X1,X2) = 0 216.95/219.23 [U42#](X) = 0 216.95/219.23 [U51#](X1,X2) = 0 216.95/219.23 [U52#](X) = 0 216.95/219.23 [U61#](X1,X2,X3) = 0 216.95/219.23 [U62#](X1,X2) = 0 216.95/219.23 [ACTIVE](X) = 2.X + 2 216.95/219.23 [CONS](X1,X2) = 0 216.95/219.23 [ISNAT](X) = 0 216.95/219.23 [ISNATILIST](X) = 0 216.95/219.23 [ISNATLIST](X) = 0 216.95/219.23 [LENGTH](X) = 0 216.95/219.23 [MARK](X) = 2.X + 2 216.95/219.23 [S](X) = 0 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 SCC Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Strongly Connected Components: 216.95/219.23 ->->Cycle: 216.95/219.23 ->->-> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 ->->-> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 Reduction Pairs Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> ACTIVE(cons(mark(X1:S),X2:S)) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 -> Usable rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Interpretation type: 216.95/219.23 Linear 216.95/219.23 ->Coefficients: 216.95/219.23 Natural Numbers 216.95/219.23 ->Dimension: 216.95/219.23 1 216.95/219.23 ->Bound: 216.95/219.23 2 216.95/219.23 ->Interpretation: 216.95/219.23 216.95/219.23 [U11](X) = 2 216.95/219.23 [U21](X) = 2 216.95/219.23 [U31](X) = 2 216.95/219.23 [U41](X1,X2) = 2 216.95/219.23 [U42](X) = 2 216.95/219.23 [U51](X1,X2) = 2 216.95/219.23 [U52](X) = 2 216.95/219.23 [U61](X1,X2,X3) = 2 216.95/219.23 [U62](X1,X2) = 2 216.95/219.23 [active](X) = 2.X 216.95/219.23 [cons](X1,X2) = 1 216.95/219.23 [isNat](X) = 2 216.95/219.23 [isNatIList](X) = 2 216.95/219.23 [isNatList](X) = 2 216.95/219.23 [length](X) = 2 216.95/219.23 [mark](X) = X + 2 216.95/219.23 [s](X) = 2 216.95/219.23 [0] = 2 216.95/219.23 [fSNonEmpty] = 0 216.95/219.23 [nil] = 0 216.95/219.23 [tt] = 2 216.95/219.23 [zeros] = 2 216.95/219.23 [U11#](X) = 0 216.95/219.23 [U21#](X) = 0 216.95/219.23 [U31#](X) = 0 216.95/219.23 [U41#](X1,X2) = 0 216.95/219.23 [U42#](X) = 0 216.95/219.23 [U51#](X1,X2) = 0 216.95/219.23 [U52#](X) = 0 216.95/219.23 [U61#](X1,X2,X3) = 0 216.95/219.23 [U62#](X1,X2) = 0 216.95/219.23 [ACTIVE](X) = X 216.95/219.23 [CONS](X1,X2) = 0 216.95/219.23 [ISNAT](X) = 0 216.95/219.23 [ISNATILIST](X) = 0 216.95/219.23 [ISNATLIST](X) = 0 216.95/219.23 [LENGTH](X) = 0 216.95/219.23 [MARK](X) = 2 216.95/219.23 [S](X) = 0 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 SCC Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Strongly Connected Components: 216.95/219.23 ->->Cycle: 216.95/219.23 ->->-> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 ->->-> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 Reduction Pairs Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> ACTIVE(length(mark(X:S))) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 -> Usable rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Interpretation type: 216.95/219.23 Linear 216.95/219.23 ->Coefficients: 216.95/219.23 Natural Numbers 216.95/219.23 ->Dimension: 216.95/219.23 1 216.95/219.23 ->Bound: 216.95/219.23 2 216.95/219.23 ->Interpretation: 216.95/219.23 216.95/219.23 [U11](X) = 2 216.95/219.23 [U21](X) = 2 216.95/219.23 [U31](X) = 0 216.95/219.23 [U41](X1,X2) = 1 216.95/219.23 [U42](X) = 2 216.95/219.23 [U51](X1,X2) = 1 216.95/219.23 [U52](X) = 1 216.95/219.23 [U61](X1,X2,X3) = 0 216.95/219.23 [U62](X1,X2) = 2 216.95/219.23 [active](X) = 2 216.95/219.23 [cons](X1,X2) = 0 216.95/219.23 [isNat](X) = 2 216.95/219.23 [isNatIList](X) = 1 216.95/219.23 [isNatList](X) = 1 216.95/219.23 [length](X) = 0 216.95/219.23 [mark](X) = 2 216.95/219.23 [s](X) = 1 216.95/219.23 [0] = 0 216.95/219.23 [fSNonEmpty] = 0 216.95/219.23 [nil] = 2 216.95/219.23 [tt] = 2 216.95/219.23 [zeros] = 1 216.95/219.23 [U11#](X) = 0 216.95/219.23 [U21#](X) = 0 216.95/219.23 [U31#](X) = 0 216.95/219.23 [U41#](X1,X2) = 0 216.95/219.23 [U42#](X) = 0 216.95/219.23 [U51#](X1,X2) = 0 216.95/219.23 [U52#](X) = 0 216.95/219.23 [U61#](X1,X2,X3) = 0 216.95/219.23 [U62#](X1,X2) = 0 216.95/219.23 [ACTIVE](X) = 2.X 216.95/219.23 [CONS](X1,X2) = 0 216.95/219.23 [ISNAT](X) = 0 216.95/219.23 [ISNATILIST](X) = 0 216.95/219.23 [ISNATLIST](X) = 0 216.95/219.23 [LENGTH](X) = 0 216.95/219.23 [MARK](X) = 2 216.95/219.23 [S](X) = 0 216.95/219.23 216.95/219.23 Problem 1.16: 216.95/219.23 216.95/219.23 SCC Processor: 216.95/219.23 -> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 -> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.23 mark(nil) -> active(nil) 216.95/219.23 mark(tt) -> active(tt) 216.95/219.23 mark(zeros) -> active(zeros) 216.95/219.23 s(active(X:S)) -> s(X:S) 216.95/219.23 s(mark(X:S)) -> s(X:S) 216.95/219.23 ->Strongly Connected Components: 216.95/219.23 ->->Cycle: 216.95/219.23 ->->-> Pairs: 216.95/219.23 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.23 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.23 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.23 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.23 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.23 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.23 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.23 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.23 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.23 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.23 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.23 MARK(length(X:S)) -> MARK(X:S) 216.95/219.23 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.23 MARK(s(X:S)) -> MARK(X:S) 216.95/219.23 MARK(zeros) -> ACTIVE(zeros) 216.95/219.23 ->->-> Rules: 216.95/219.23 U11(active(X:S)) -> U11(X:S) 216.95/219.23 U11(mark(X:S)) -> U11(X:S) 216.95/219.23 U21(active(X:S)) -> U21(X:S) 216.95/219.23 U21(mark(X:S)) -> U21(X:S) 216.95/219.23 U31(active(X:S)) -> U31(X:S) 216.95/219.23 U31(mark(X:S)) -> U31(X:S) 216.95/219.23 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.23 U42(active(X:S)) -> U42(X:S) 216.95/219.23 U42(mark(X:S)) -> U42(X:S) 216.95/219.23 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.23 U52(active(X:S)) -> U52(X:S) 216.95/219.23 U52(mark(X:S)) -> U52(X:S) 216.95/219.23 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.23 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.23 active(U11(tt)) -> mark(tt) 216.95/219.23 active(U21(tt)) -> mark(tt) 216.95/219.23 active(U31(tt)) -> mark(tt) 216.95/219.23 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.23 active(U42(tt)) -> mark(tt) 216.95/219.23 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.23 active(U52(tt)) -> mark(tt) 216.95/219.23 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.23 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.23 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.23 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.23 active(isNat(0)) -> mark(tt) 216.95/219.23 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatIList(zeros)) -> mark(tt) 216.95/219.23 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.23 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.23 active(isNatList(nil)) -> mark(tt) 216.95/219.23 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.23 active(length(nil)) -> mark(0) 216.95/219.23 active(zeros) -> mark(cons(0,zeros)) 216.95/219.23 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.23 isNat(active(X:S)) -> isNat(X:S) 216.95/219.23 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.23 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.23 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.23 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.23 length(active(X:S)) -> length(X:S) 216.95/219.23 length(mark(X:S)) -> length(X:S) 216.95/219.23 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.23 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.23 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.23 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.23 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.23 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.23 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.23 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.23 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.23 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.23 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.23 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.23 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.23 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.23 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.23 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 Reduction Pairs Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(length(X:S)) -> MARK(X:S) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 MARK(zeros) -> ACTIVE(zeros) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 -> Usable rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Interpretation type: 216.95/219.24 Linear 216.95/219.24 ->Coefficients: 216.95/219.24 Natural Numbers 216.95/219.24 ->Dimension: 216.95/219.24 1 216.95/219.24 ->Bound: 216.95/219.24 2 216.95/219.24 ->Interpretation: 216.95/219.24 216.95/219.24 [U11](X) = 2 216.95/219.24 [U21](X) = 0 216.95/219.24 [U31](X) = X + 2 216.95/219.24 [U41](X1,X2) = 2.X1 + 2.X2 + 2 216.95/219.24 [U42](X) = X 216.95/219.24 [U51](X1,X2) = X1 + 2.X2 216.95/219.24 [U52](X) = X 216.95/219.24 [U61](X1,X2,X3) = 2.X2 + 2.X3 + 2 216.95/219.24 [U62](X1,X2) = X1 + 2.X2 + 2 216.95/219.24 [active](X) = X 216.95/219.24 [cons](X1,X2) = 2.X1 + X2 216.95/219.24 [isNat](X) = 2.X 216.95/219.24 [isNatIList](X) = 2.X + 2 216.95/219.24 [isNatList](X) = 2.X 216.95/219.24 [length](X) = 2.X + 2 216.95/219.24 [mark](X) = X 216.95/219.24 [s](X) = X 216.95/219.24 [0] = 0 216.95/219.24 [fSNonEmpty] = 0 216.95/219.24 [nil] = 2 216.95/219.24 [tt] = 0 216.95/219.24 [zeros] = 1 216.95/219.24 [U11#](X) = 0 216.95/219.24 [U21#](X) = 0 216.95/219.24 [U31#](X) = 0 216.95/219.24 [U41#](X1,X2) = 0 216.95/219.24 [U42#](X) = 0 216.95/219.24 [U51#](X1,X2) = 0 216.95/219.24 [U52#](X) = 0 216.95/219.24 [U61#](X1,X2,X3) = 0 216.95/219.24 [U62#](X1,X2) = 0 216.95/219.24 [ACTIVE](X) = 2.X + 2 216.95/219.24 [CONS](X1,X2) = 0 216.95/219.24 [ISNAT](X) = 0 216.95/219.24 [ISNATILIST](X) = 0 216.95/219.24 [ISNATLIST](X) = 0 216.95/219.24 [LENGTH](X) = 0 216.95/219.24 [MARK](X) = 2.X + 2 216.95/219.24 [S](X) = 0 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 SCC Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 MARK(zeros) -> ACTIVE(zeros) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Strongly Connected Components: 216.95/219.24 ->->Cycle: 216.95/219.24 ->->-> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 MARK(zeros) -> ACTIVE(zeros) 216.95/219.24 ->->-> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 Reduction Pairs Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(zeros) -> MARK(cons(0,zeros)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 MARK(zeros) -> ACTIVE(zeros) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 -> Usable rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Interpretation type: 216.95/219.24 Linear 216.95/219.24 ->Coefficients: 216.95/219.24 Natural Numbers 216.95/219.24 ->Dimension: 216.95/219.24 1 216.95/219.24 ->Bound: 216.95/219.24 2 216.95/219.24 ->Interpretation: 216.95/219.24 216.95/219.24 [U11](X) = 1 216.95/219.24 [U21](X) = 1 216.95/219.24 [U31](X) = 2.X 216.95/219.24 [U41](X1,X2) = 0 216.95/219.24 [U42](X) = 2.X 216.95/219.24 [U51](X1,X2) = 0 216.95/219.24 [U52](X) = 2.X 216.95/219.24 [U61](X1,X2,X3) = 2.X1 216.95/219.24 [U62](X1,X2) = 0 216.95/219.24 [active](X) = X 216.95/219.24 [cons](X1,X2) = X1 216.95/219.24 [isNat](X) = 2 216.95/219.24 [isNatIList](X) = 0 216.95/219.24 [isNatList](X) = 0 216.95/219.24 [length](X) = 0 216.95/219.24 [mark](X) = 2.X 216.95/219.24 [s](X) = 2.X 216.95/219.24 [0] = 0 216.95/219.24 [fSNonEmpty] = 0 216.95/219.24 [nil] = 1 216.95/219.24 [tt] = 0 216.95/219.24 [zeros] = 2 216.95/219.24 [U11#](X) = 0 216.95/219.24 [U21#](X) = 0 216.95/219.24 [U31#](X) = 0 216.95/219.24 [U41#](X1,X2) = 0 216.95/219.24 [U42#](X) = 0 216.95/219.24 [U51#](X1,X2) = 0 216.95/219.24 [U52#](X) = 0 216.95/219.24 [U61#](X1,X2,X3) = 0 216.95/219.24 [U62#](X1,X2) = 0 216.95/219.24 [ACTIVE](X) = X + 2 216.95/219.24 [CONS](X1,X2) = 0 216.95/219.24 [ISNAT](X) = 0 216.95/219.24 [ISNATILIST](X) = 0 216.95/219.24 [ISNATLIST](X) = 0 216.95/219.24 [LENGTH](X) = 0 216.95/219.24 [MARK](X) = 2.X + 2 216.95/219.24 [S](X) = 0 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 SCC Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 MARK(zeros) -> ACTIVE(zeros) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Strongly Connected Components: 216.95/219.24 ->->Cycle: 216.95/219.24 ->->-> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 ->->-> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 Reduction Pairs Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(cons(X1:S,X2:S)) -> MARK(X1:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 -> Usable rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Interpretation type: 216.95/219.24 Linear 216.95/219.24 ->Coefficients: 216.95/219.24 Natural Numbers 216.95/219.24 ->Dimension: 216.95/219.24 1 216.95/219.24 ->Bound: 216.95/219.24 2 216.95/219.24 ->Interpretation: 216.95/219.24 216.95/219.24 [U11](X) = 2.X 216.95/219.24 [U21](X) = 1 216.95/219.24 [U31](X) = 2.X 216.95/219.24 [U41](X1,X2) = 0 216.95/219.24 [U42](X) = 2.X 216.95/219.24 [U51](X1,X2) = 0 216.95/219.24 [U52](X) = 2.X 216.95/219.24 [U61](X1,X2,X3) = X1 216.95/219.24 [U62](X1,X2) = 0 216.95/219.24 [active](X) = X 216.95/219.24 [cons](X1,X2) = X1 + 1 216.95/219.24 [isNat](X) = 2 216.95/219.24 [isNatIList](X) = 0 216.95/219.24 [isNatList](X) = 0 216.95/219.24 [length](X) = 0 216.95/219.24 [mark](X) = 2.X 216.95/219.24 [s](X) = 2.X 216.95/219.24 [0] = 0 216.95/219.24 [fSNonEmpty] = 0 216.95/219.24 [nil] = 0 216.95/219.24 [tt] = 0 216.95/219.24 [zeros] = 2 216.95/219.24 [U11#](X) = 0 216.95/219.24 [U21#](X) = 0 216.95/219.24 [U31#](X) = 0 216.95/219.24 [U41#](X1,X2) = 0 216.95/219.24 [U42#](X) = 0 216.95/219.24 [U51#](X1,X2) = 0 216.95/219.24 [U52#](X) = 0 216.95/219.24 [U61#](X1,X2,X3) = 0 216.95/219.24 [U62#](X1,X2) = 0 216.95/219.24 [ACTIVE](X) = X + 2 216.95/219.24 [CONS](X1,X2) = 0 216.95/219.24 [ISNAT](X) = 0 216.95/219.24 [ISNATILIST](X) = 0 216.95/219.24 [ISNATLIST](X) = 0 216.95/219.24 [LENGTH](X) = 0 216.95/219.24 [MARK](X) = 2.X + 2 216.95/219.24 [S](X) = 0 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 SCC Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Strongly Connected Components: 216.95/219.24 ->->Cycle: 216.95/219.24 ->->-> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 ->->-> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 Reduction Pairs Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> ACTIVE(s(mark(X:S))) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 -> Usable rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Interpretation type: 216.95/219.24 Linear 216.95/219.24 ->Coefficients: 216.95/219.24 Natural Numbers 216.95/219.24 ->Dimension: 216.95/219.24 1 216.95/219.24 ->Bound: 216.95/219.24 2 216.95/219.24 ->Interpretation: 216.95/219.24 216.95/219.24 [U11](X) = 1 216.95/219.24 [U21](X) = 1 216.95/219.24 [U31](X) = 1 216.95/219.24 [U41](X1,X2) = 1 216.95/219.24 [U42](X) = 1 216.95/219.24 [U51](X1,X2) = 1 216.95/219.24 [U52](X) = 1 216.95/219.24 [U61](X1,X2,X3) = 1 216.95/219.24 [U62](X1,X2) = 1 216.95/219.24 [active](X) = 2.X 216.95/219.24 [cons](X1,X2) = 0 216.95/219.24 [isNat](X) = 1 216.95/219.24 [isNatIList](X) = 1 216.95/219.24 [isNatList](X) = 1 216.95/219.24 [length](X) = 1 216.95/219.24 [mark](X) = 2 216.95/219.24 [s](X) = 0 216.95/219.24 [0] = 0 216.95/219.24 [fSNonEmpty] = 0 216.95/219.24 [nil] = 0 216.95/219.24 [tt] = 1 216.95/219.24 [zeros] = 1 216.95/219.24 [U11#](X) = 0 216.95/219.24 [U21#](X) = 0 216.95/219.24 [U31#](X) = 0 216.95/219.24 [U41#](X1,X2) = 0 216.95/219.24 [U42#](X) = 0 216.95/219.24 [U51#](X1,X2) = 0 216.95/219.24 [U52#](X) = 0 216.95/219.24 [U61#](X1,X2,X3) = 0 216.95/219.24 [U62#](X1,X2) = 0 216.95/219.24 [ACTIVE](X) = 2.X 216.95/219.24 [CONS](X1,X2) = 0 216.95/219.24 [ISNAT](X) = 0 216.95/219.24 [ISNATILIST](X) = 0 216.95/219.24 [ISNATLIST](X) = 0 216.95/219.24 [LENGTH](X) = 0 216.95/219.24 [MARK](X) = 2 216.95/219.24 [S](X) = 0 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 SCC Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Strongly Connected Components: 216.95/219.24 ->->Cycle: 216.95/219.24 ->->-> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 ->->-> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 Reduction Pairs Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 MARK(s(X:S)) -> MARK(X:S) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 -> Usable rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.24 active(U11(tt)) -> mark(tt) 216.95/219.24 active(U21(tt)) -> mark(tt) 216.95/219.24 active(U31(tt)) -> mark(tt) 216.95/219.24 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.24 active(U42(tt)) -> mark(tt) 216.95/219.24 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.24 active(U52(tt)) -> mark(tt) 216.95/219.24 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.24 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.24 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.24 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.24 active(isNat(0)) -> mark(tt) 216.95/219.24 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatIList(zeros)) -> mark(tt) 216.95/219.24 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.24 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.24 active(isNatList(nil)) -> mark(tt) 216.95/219.24 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.24 active(length(nil)) -> mark(0) 216.95/219.24 active(zeros) -> mark(cons(0,zeros)) 216.95/219.24 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.24 isNat(active(X:S)) -> isNat(X:S) 216.95/219.24 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.24 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.24 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.24 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.24 length(active(X:S)) -> length(X:S) 216.95/219.24 length(mark(X:S)) -> length(X:S) 216.95/219.24 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.24 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.24 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.24 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.24 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.24 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.24 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.24 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.24 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.24 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.24 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.24 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.24 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.24 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.24 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.24 mark(0) -> active(0) 216.95/219.24 mark(nil) -> active(nil) 216.95/219.24 mark(tt) -> active(tt) 216.95/219.24 mark(zeros) -> active(zeros) 216.95/219.24 s(active(X:S)) -> s(X:S) 216.95/219.24 s(mark(X:S)) -> s(X:S) 216.95/219.24 ->Interpretation type: 216.95/219.24 Linear 216.95/219.24 ->Coefficients: 216.95/219.24 Natural Numbers 216.95/219.24 ->Dimension: 216.95/219.24 1 216.95/219.24 ->Bound: 216.95/219.24 2 216.95/219.24 ->Interpretation: 216.95/219.24 216.95/219.24 [U11](X) = 2 216.95/219.24 [U21](X) = 2 216.95/219.24 [U31](X) = 2 216.95/219.24 [U41](X1,X2) = 2.X2 + 2 216.95/219.24 [U42](X) = X 216.95/219.24 [U51](X1,X2) = 2.X2 + 1 216.95/219.24 [U52](X) = X 216.95/219.24 [U61](X1,X2,X3) = X1 + 2.X2 216.95/219.24 [U62](X1,X2) = 2.X2 + 2 216.95/219.24 [active](X) = X 216.95/219.24 [cons](X1,X2) = 2.X2 216.95/219.24 [isNat](X) = 2.X + 2 216.95/219.24 [isNatIList](X) = 2.X + 2 216.95/219.24 [isNatList](X) = 2.X + 1 216.95/219.24 [length](X) = 2.X + 1 216.95/219.24 [mark](X) = X 216.95/219.24 [s](X) = X + 1 216.95/219.24 [0] = 2 216.95/219.24 [fSNonEmpty] = 0 216.95/219.24 [nil] = 1 216.95/219.24 [tt] = 2 216.95/219.24 [zeros] = 0 216.95/219.24 [U11#](X) = 0 216.95/219.24 [U21#](X) = 0 216.95/219.24 [U31#](X) = 0 216.95/219.24 [U41#](X1,X2) = 0 216.95/219.24 [U42#](X) = 0 216.95/219.24 [U51#](X1,X2) = 0 216.95/219.24 [U52#](X) = 0 216.95/219.24 [U61#](X1,X2,X3) = 0 216.95/219.24 [U62#](X1,X2) = 0 216.95/219.24 [ACTIVE](X) = X 216.95/219.24 [CONS](X1,X2) = 0 216.95/219.24 [ISNAT](X) = 0 216.95/219.24 [ISNATILIST](X) = 0 216.95/219.24 [ISNATLIST](X) = 0 216.95/219.24 [LENGTH](X) = 0 216.95/219.24 [MARK](X) = X 216.95/219.24 [S](X) = 0 216.95/219.24 216.95/219.24 Problem 1.16: 216.95/219.24 216.95/219.24 SCC Processor: 216.95/219.24 -> Pairs: 216.95/219.24 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.24 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.24 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.24 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.24 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.24 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.24 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.24 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.24 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.24 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.24 -> Rules: 216.95/219.24 U11(active(X:S)) -> U11(X:S) 216.95/219.24 U11(mark(X:S)) -> U11(X:S) 216.95/219.24 U21(active(X:S)) -> U21(X:S) 216.95/219.24 U21(mark(X:S)) -> U21(X:S) 216.95/219.24 U31(active(X:S)) -> U31(X:S) 216.95/219.24 U31(mark(X:S)) -> U31(X:S) 216.95/219.24 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.24 U42(active(X:S)) -> U42(X:S) 216.95/219.24 U42(mark(X:S)) -> U42(X:S) 216.95/219.24 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.24 U52(active(X:S)) -> U52(X:S) 216.95/219.24 U52(mark(X:S)) -> U52(X:S) 216.95/219.24 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.24 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 ->Strongly Connected Components: 216.95/219.25 ->->Cycle: 216.95/219.25 ->->-> Pairs: 216.95/219.25 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.25 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.25 ->->-> Rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 216.95/219.25 Problem 1.16: 216.95/219.25 216.95/219.25 Reduction Pairs Processor: 216.95/219.25 -> Pairs: 216.95/219.25 ACTIVE(U41(tt,V2:S)) -> MARK(U42(isNatIList(V2:S))) 216.95/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.25 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.25 -> Rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 -> Usable rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 ->Interpretation type: 216.95/219.25 Linear 216.95/219.25 ->Coefficients: 216.95/219.25 Natural Numbers 216.95/219.25 ->Dimension: 216.95/219.25 2 216.95/219.25 ->Bound: 216.95/219.25 1 216.95/219.25 ->Interpretation: 216.95/219.25 216.95/219.25 [U11](X) = [1;1] 216.95/219.25 [U21](X) = [1;1] 216.95/219.25 [U31](X) = [0 0;1 1].X 216.95/219.25 [U41](X1,X2) = [0 0;1 1].X1 + [0 0;0 1].X2 216.95/219.25 [U42](X) = [0 0;1 1].X + [1;0] 216.95/219.25 [U51](X1,X2) = [0 0;0 1].X2 + [0;1] 216.95/219.25 [U52](X) = [0 0;1 1].X 216.95/219.25 [U61](X1,X2,X3) = [0;1] 216.95/219.25 [U62](X1,X2) = [1;0] 216.95/219.25 [active](X) = [0 0;1 1].X 216.95/219.25 [cons](X1,X2) = [0 0;1 1].X1 + [0 0;0 1].X2 + [0;1] 216.95/219.25 [isNat](X) = [1 1;0 0].X + [1;1] 216.95/219.25 [isNatIList](X) = [0 0;0 1].X + [0;1] 216.95/219.25 [isNatList](X) = [0 0;0 1].X + [1;0] 216.95/219.25 [length](X) = [1;1] 216.95/219.25 [mark](X) = [0 0;1 1].X 216.95/219.25 [s](X) = [1;0] 216.95/219.25 [0] = 0 216.95/219.25 [fSNonEmpty] = 0 216.95/219.25 [nil] = [1;1] 216.95/219.25 [tt] = [1;1] 216.95/219.25 [zeros] = [1;1] 216.95/219.25 [U11#](X) = 0 216.95/219.25 [U21#](X) = 0 216.95/219.25 [U31#](X) = 0 216.95/219.25 [U41#](X1,X2) = 0 216.95/219.25 [U42#](X) = 0 216.95/219.25 [U51#](X1,X2) = 0 216.95/219.25 [U52#](X) = 0 216.95/219.25 [U61#](X1,X2,X3) = 0 216.95/219.25 [U62#](X1,X2) = 0 216.95/219.25 [ACTIVE](X) = [0 1;0 1].X + [1;1] 216.95/219.25 [CONS](X1,X2) = 0 216.95/219.25 [ISNAT](X) = 0 216.95/219.25 [ISNATILIST](X) = 0 216.95/219.25 [ISNATLIST](X) = 0 216.95/219.25 [LENGTH](X) = 0 216.95/219.25 [MARK](X) = [0 1;1 1].X + [1;1] 216.95/219.25 [S](X) = 0 216.95/219.25 216.95/219.25 Problem 1.16: 216.95/219.25 216.95/219.25 SCC Processor: 216.95/219.25 -> Pairs: 216.95/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.25 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.25 -> Rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 ->Strongly Connected Components: 216.95/219.25 ->->Cycle: 216.95/219.25 ->->-> Pairs: 216.95/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.25 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.25 ->->-> Rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 216.95/219.25 Problem 1.16: 216.95/219.25 216.95/219.25 Reduction Pairs Processor: 216.95/219.25 -> Pairs: 216.95/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.95/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.95/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.95/219.25 MARK(U41(X1:S,X2:S)) -> ACTIVE(U41(mark(X1:S),X2:S)) 216.95/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.95/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.95/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.95/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.95/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.95/219.25 -> Rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 -> Usable rules: 216.95/219.25 U11(active(X:S)) -> U11(X:S) 216.95/219.25 U11(mark(X:S)) -> U11(X:S) 216.95/219.25 U21(active(X:S)) -> U21(X:S) 216.95/219.25 U21(mark(X:S)) -> U21(X:S) 216.95/219.25 U31(active(X:S)) -> U31(X:S) 216.95/219.25 U31(mark(X:S)) -> U31(X:S) 216.95/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.95/219.25 U42(active(X:S)) -> U42(X:S) 216.95/219.25 U42(mark(X:S)) -> U42(X:S) 216.95/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.95/219.25 U52(active(X:S)) -> U52(X:S) 216.95/219.25 U52(mark(X:S)) -> U52(X:S) 216.95/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.95/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.95/219.25 active(U11(tt)) -> mark(tt) 216.95/219.25 active(U21(tt)) -> mark(tt) 216.95/219.25 active(U31(tt)) -> mark(tt) 216.95/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.95/219.25 active(U42(tt)) -> mark(tt) 216.95/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.95/219.25 active(U52(tt)) -> mark(tt) 216.95/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.95/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.95/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.95/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.95/219.25 active(isNat(0)) -> mark(tt) 216.95/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatIList(zeros)) -> mark(tt) 216.95/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.95/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.95/219.25 active(isNatList(nil)) -> mark(tt) 216.95/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.95/219.25 active(length(nil)) -> mark(0) 216.95/219.25 active(zeros) -> mark(cons(0,zeros)) 216.95/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.95/219.25 isNat(active(X:S)) -> isNat(X:S) 216.95/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.95/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.95/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.95/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.95/219.25 length(active(X:S)) -> length(X:S) 216.95/219.25 length(mark(X:S)) -> length(X:S) 216.95/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.95/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.95/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.95/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.95/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.95/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.95/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.95/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.95/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.95/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.95/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.95/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.95/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.95/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.95/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.95/219.25 mark(0) -> active(0) 216.95/219.25 mark(nil) -> active(nil) 216.95/219.25 mark(tt) -> active(tt) 216.95/219.25 mark(zeros) -> active(zeros) 216.95/219.25 s(active(X:S)) -> s(X:S) 216.95/219.25 s(mark(X:S)) -> s(X:S) 216.95/219.25 ->Interpretation type: 216.95/219.25 Linear 216.95/219.25 ->Coefficients: 216.95/219.25 Natural Numbers 216.95/219.25 ->Dimension: 216.95/219.25 1 216.95/219.25 ->Bound: 216.95/219.25 2 216.95/219.25 ->Interpretation: 216.95/219.25 216.95/219.25 [U11](X) = 2 216.95/219.25 [U21](X) = 2 216.95/219.25 [U31](X) = 2 216.95/219.25 [U41](X1,X2) = 1 216.98/219.25 [U42](X) = 1 216.98/219.25 [U51](X1,X2) = 2 216.98/219.25 [U52](X) = 2 216.98/219.25 [U61](X1,X2,X3) = 2 216.98/219.25 [U62](X1,X2) = 0 216.98/219.25 [active](X) = 2.X + 2 216.98/219.25 [cons](X1,X2) = 2.X2 216.98/219.25 [isNat](X) = 2.X + 2 216.98/219.25 [isNatIList](X) = 2 216.98/219.25 [isNatList](X) = 2 216.98/219.25 [length](X) = 2 216.98/219.25 [mark](X) = 2.X + 2 216.98/219.25 [s](X) = 0 216.98/219.25 [0] = 2 216.98/219.25 [fSNonEmpty] = 0 216.98/219.25 [nil] = 2 216.98/219.25 [tt] = 1 216.98/219.25 [zeros] = 0 216.98/219.25 [U11#](X) = 0 216.98/219.25 [U21#](X) = 0 216.98/219.25 [U31#](X) = 0 216.98/219.25 [U41#](X1,X2) = 0 216.98/219.25 [U42#](X) = 0 216.98/219.25 [U51#](X1,X2) = 0 216.98/219.25 [U52#](X) = 0 216.98/219.25 [U61#](X1,X2,X3) = 0 216.98/219.25 [U62#](X1,X2) = 0 216.98/219.25 [ACTIVE](X) = X 216.98/219.25 [CONS](X1,X2) = 0 216.98/219.25 [ISNAT](X) = 0 216.98/219.25 [ISNATILIST](X) = 0 216.98/219.25 [ISNATLIST](X) = 0 216.98/219.25 [LENGTH](X) = 0 216.98/219.25 [MARK](X) = 2 216.98/219.25 [S](X) = 0 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 SCC Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 -> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 ->Strongly Connected Components: 216.98/219.25 ->->Cycle: 216.98/219.25 ->->-> Pairs: 216.98/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 ->->-> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 Reduction Pairs Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(U51(tt,V2:S)) -> MARK(U52(isNatList(V2:S))) 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 -> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 -> Usable rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 ->Interpretation type: 216.98/219.25 Linear 216.98/219.25 ->Coefficients: 216.98/219.25 Natural Numbers 216.98/219.25 ->Dimension: 216.98/219.25 2 216.98/219.25 ->Bound: 216.98/219.25 1 216.98/219.25 ->Interpretation: 216.98/219.25 216.98/219.25 [U11](X) = [0 0;1 1].X + [1;1] 216.98/219.25 [U21](X) = [1;1] 216.98/219.25 [U31](X) = [1;0] 216.98/219.25 [U41](X1,X2) = [1 1;0 0].X1 + [0 1;0 1].X2 + [1;1] 216.98/219.25 [U42](X) = [0 0;1 1].X + [0;1] 216.98/219.25 [U51](X1,X2) = [1 1;0 0].X1 + [0 0;0 1].X2 + [0;1] 216.98/219.25 [U52](X) = [0 0;1 1].X + [1;0] 216.98/219.25 [U61](X1,X2,X3) = [1 1;0 0].X1 + [0 0;0 1].X2 + [1 1;0 1].X3 + [1;1] 216.98/219.25 [U62](X1,X2) = [1 1;0 0].X1 + [0 1;0 0].X2 + [1;1] 216.98/219.25 [active](X) = [0 0;1 1].X 216.98/219.25 [cons](X1,X2) = [1 1;1 1].X1 + [0 0;0 1].X2 + [0;1] 216.98/219.25 [isNat](X) = [1 1;0 0].X 216.98/219.25 [isNatIList](X) = [0 1;0 1].X + [0;1] 216.98/219.25 [isNatList](X) = [0 0;0 1].X 216.98/219.25 [length](X) = [1 1;1 1].X + [1;1] 216.98/219.25 [mark](X) = [0 0;1 1].X 216.98/219.25 [s](X) = [1;1] 216.98/219.25 [0] = 0 216.98/219.25 [fSNonEmpty] = 0 216.98/219.25 [nil] = [1;1] 216.98/219.25 [tt] = 0 216.98/219.25 [zeros] = [1;0] 216.98/219.25 [U11#](X) = 0 216.98/219.25 [U21#](X) = 0 216.98/219.25 [U31#](X) = 0 216.98/219.25 [U41#](X1,X2) = 0 216.98/219.25 [U42#](X) = 0 216.98/219.25 [U51#](X1,X2) = 0 216.98/219.25 [U52#](X) = 0 216.98/219.25 [U61#](X1,X2,X3) = 0 216.98/219.25 [U62#](X1,X2) = 0 216.98/219.25 [ACTIVE](X) = [0 1;1 1].X + [1;1] 216.98/219.25 [CONS](X1,X2) = 0 216.98/219.25 [ISNAT](X) = 0 216.98/219.25 [ISNATILIST](X) = 0 216.98/219.25 [ISNATLIST](X) = 0 216.98/219.25 [LENGTH](X) = 0 216.98/219.25 [MARK](X) = [0 1;1 1].X + [1;1] 216.98/219.25 [S](X) = 0 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 SCC Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 -> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 ->Strongly Connected Components: 216.98/219.25 ->->Cycle: 216.98/219.25 ->->-> Pairs: 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 ->->-> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 Reduction Pairs Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U51(X1:S,X2:S)) -> ACTIVE(U51(mark(X1:S),X2:S)) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 -> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 -> Usable rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 ->Interpretation type: 216.98/219.25 Linear 216.98/219.25 ->Coefficients: 216.98/219.25 Natural Numbers 216.98/219.25 ->Dimension: 216.98/219.25 1 216.98/219.25 ->Bound: 216.98/219.25 2 216.98/219.25 ->Interpretation: 216.98/219.25 216.98/219.25 [U11](X) = 0 216.98/219.25 [U21](X) = 2 216.98/219.25 [U31](X) = 2 216.98/219.25 [U41](X1,X2) = 2 216.98/219.25 [U42](X) = 0 216.98/219.25 [U51](X1,X2) = 1 216.98/219.25 [U52](X) = 1 216.98/219.25 [U61](X1,X2,X3) = 2 216.98/219.25 [U62](X1,X2) = 2 216.98/219.25 [active](X) = 2 216.98/219.25 [cons](X1,X2) = 0 216.98/219.25 [isNat](X) = 2 216.98/219.25 [isNatIList](X) = 2 216.98/219.25 [isNatList](X) = 2 216.98/219.25 [length](X) = 2 216.98/219.25 [mark](X) = 2 216.98/219.25 [s](X) = 2 216.98/219.25 [0] = 2 216.98/219.25 [fSNonEmpty] = 0 216.98/219.25 [nil] = 1 216.98/219.25 [tt] = 2 216.98/219.25 [zeros] = 2 216.98/219.25 [U11#](X) = 0 216.98/219.25 [U21#](X) = 0 216.98/219.25 [U31#](X) = 0 216.98/219.25 [U41#](X1,X2) = 0 216.98/219.25 [U42#](X) = 0 216.98/219.25 [U51#](X1,X2) = 0 216.98/219.25 [U52#](X) = 0 216.98/219.25 [U61#](X1,X2,X3) = 0 216.98/219.25 [U62#](X1,X2) = 0 216.98/219.25 [ACTIVE](X) = X 216.98/219.25 [CONS](X1,X2) = 0 216.98/219.25 [ISNAT](X) = 0 216.98/219.25 [ISNATILIST](X) = 0 216.98/219.25 [ISNATLIST](X) = 0 216.98/219.25 [LENGTH](X) = 0 216.98/219.25 [MARK](X) = 2 216.98/219.25 [S](X) = 0 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 SCC Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 -> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 ->Strongly Connected Components: 216.98/219.25 ->->Cycle: 216.98/219.25 ->->-> Pairs: 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 ->->-> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 Reduction Pairs Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(isNatIList(cons(V1:S,V2:S))) -> MARK(U41(isNat(V1:S),V2:S)) 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.25 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.25 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.25 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.25 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.25 -> Rules: 216.98/219.25 U11(active(X:S)) -> U11(X:S) 216.98/219.25 U11(mark(X:S)) -> U11(X:S) 216.98/219.25 U21(active(X:S)) -> U21(X:S) 216.98/219.25 U21(mark(X:S)) -> U21(X:S) 216.98/219.25 U31(active(X:S)) -> U31(X:S) 216.98/219.25 U31(mark(X:S)) -> U31(X:S) 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U42(active(X:S)) -> U42(X:S) 216.98/219.25 U42(mark(X:S)) -> U42(X:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U52(active(X:S)) -> U52(X:S) 216.98/219.25 U52(mark(X:S)) -> U52(X:S) 216.98/219.25 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.25 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.25 active(U11(tt)) -> mark(tt) 216.98/219.25 active(U21(tt)) -> mark(tt) 216.98/219.25 active(U31(tt)) -> mark(tt) 216.98/219.25 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.25 active(U42(tt)) -> mark(tt) 216.98/219.25 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.25 active(U52(tt)) -> mark(tt) 216.98/219.25 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.25 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.25 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.25 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.25 active(isNat(0)) -> mark(tt) 216.98/219.25 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatIList(zeros)) -> mark(tt) 216.98/219.25 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.25 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.25 active(isNatList(nil)) -> mark(tt) 216.98/219.25 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.25 active(length(nil)) -> mark(0) 216.98/219.25 active(zeros) -> mark(cons(0,zeros)) 216.98/219.25 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 length(active(X:S)) -> length(X:S) 216.98/219.25 length(mark(X:S)) -> length(X:S) 216.98/219.25 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.25 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.25 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.25 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.25 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.25 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.25 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.25 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.25 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.25 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.25 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.25 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.25 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.25 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.25 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.25 mark(0) -> active(0) 216.98/219.25 mark(nil) -> active(nil) 216.98/219.25 mark(tt) -> active(tt) 216.98/219.25 mark(zeros) -> active(zeros) 216.98/219.25 s(active(X:S)) -> s(X:S) 216.98/219.25 s(mark(X:S)) -> s(X:S) 216.98/219.25 -> Usable rules: 216.98/219.25 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.25 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.25 isNat(active(X:S)) -> isNat(X:S) 216.98/219.25 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.25 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.25 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.25 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.25 ->Interpretation type: 216.98/219.25 Linear 216.98/219.25 ->Coefficients: 216.98/219.25 Natural Numbers 216.98/219.25 ->Dimension: 216.98/219.25 1 216.98/219.25 ->Bound: 216.98/219.25 2 216.98/219.25 ->Interpretation: 216.98/219.25 216.98/219.25 [U11](X) = 0 216.98/219.25 [U21](X) = 0 216.98/219.25 [U31](X) = 0 216.98/219.25 [U41](X1,X2) = 2.X1 + 1 216.98/219.25 [U42](X) = 2.X 216.98/219.25 [U51](X1,X2) = 2.X2 + 2 216.98/219.25 [U52](X) = 2.X 216.98/219.25 [U61](X1,X2,X3) = 0 216.98/219.25 [U62](X1,X2) = 0 216.98/219.25 [active](X) = 2.X 216.98/219.25 [cons](X1,X2) = X1 + 2.X2 + 2 216.98/219.25 [isNat](X) = 0 216.98/219.25 [isNatIList](X) = 2 216.98/219.25 [isNatList](X) = 2.X + 2 216.98/219.25 [length](X) = 0 216.98/219.25 [mark](X) = X 216.98/219.25 [s](X) = 0 216.98/219.25 [0] = 0 216.98/219.25 [fSNonEmpty] = 0 216.98/219.25 [nil] = 0 216.98/219.25 [tt] = 0 216.98/219.25 [zeros] = 0 216.98/219.25 [U11#](X) = 0 216.98/219.25 [U21#](X) = 0 216.98/219.25 [U31#](X) = 0 216.98/219.25 [U41#](X1,X2) = 0 216.98/219.25 [U42#](X) = 0 216.98/219.25 [U51#](X1,X2) = 0 216.98/219.25 [U52#](X) = 0 216.98/219.25 [U61#](X1,X2,X3) = 0 216.98/219.25 [U62#](X1,X2) = 0 216.98/219.25 [ACTIVE](X) = X + 2 216.98/219.25 [CONS](X1,X2) = 0 216.98/219.25 [ISNAT](X) = 0 216.98/219.25 [ISNATILIST](X) = 0 216.98/219.25 [ISNATLIST](X) = 0 216.98/219.25 [LENGTH](X) = 0 216.98/219.25 [MARK](X) = X + 2 216.98/219.25 [S](X) = 0 216.98/219.25 216.98/219.25 Problem 1.16: 216.98/219.25 216.98/219.25 SCC Processor: 216.98/219.25 -> Pairs: 216.98/219.25 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.26 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.26 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.26 MARK(isNatIList(X:S)) -> ACTIVE(isNatIList(X:S)) 216.98/219.26 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.26 -> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 ->Strongly Connected Components: 216.98/219.26 ->->Cycle: 216.98/219.26 ->->-> Pairs: 216.98/219.26 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.26 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.26 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.26 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.26 ->->-> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 216.98/219.26 Problem 1.16: 216.98/219.26 216.98/219.26 Reduction Pairs Processor: 216.98/219.26 -> Pairs: 216.98/219.26 ACTIVE(isNatList(cons(V1:S,V2:S))) -> MARK(U51(isNat(V1:S),V2:S)) 216.98/219.26 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.26 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.26 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.26 -> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 -> Usable rules: 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 ->Interpretation type: 216.98/219.26 Linear 216.98/219.26 ->Coefficients: 216.98/219.26 Natural Numbers 216.98/219.26 ->Dimension: 216.98/219.26 1 216.98/219.26 ->Bound: 216.98/219.26 2 216.98/219.26 ->Interpretation: 216.98/219.26 216.98/219.26 [U11](X) = 0 216.98/219.26 [U21](X) = 0 216.98/219.26 [U31](X) = 0 216.98/219.26 [U41](X1,X2) = 0 216.98/219.26 [U42](X) = 2.X 216.98/219.26 [U51](X1,X2) = 0 216.98/219.26 [U52](X) = 2.X 216.98/219.26 [U61](X1,X2,X3) = 0 216.98/219.26 [U62](X1,X2) = 0 216.98/219.26 [active](X) = 0 216.98/219.26 [cons](X1,X2) = 2.X1 + 1 216.98/219.26 [isNat](X) = 0 216.98/219.26 [isNatIList](X) = 0 216.98/219.26 [isNatList](X) = 2 216.98/219.26 [length](X) = 0 216.98/219.26 [mark](X) = 0 216.98/219.26 [s](X) = 0 216.98/219.26 [0] = 0 216.98/219.26 [fSNonEmpty] = 0 216.98/219.26 [nil] = 0 216.98/219.26 [tt] = 0 216.98/219.26 [zeros] = 0 216.98/219.26 [U11#](X) = 0 216.98/219.26 [U21#](X) = 0 216.98/219.26 [U31#](X) = 0 216.98/219.26 [U41#](X1,X2) = 0 216.98/219.26 [U42#](X) = 0 216.98/219.26 [U51#](X1,X2) = 0 216.98/219.26 [U52#](X) = 0 216.98/219.26 [U61#](X1,X2,X3) = 0 216.98/219.26 [U62#](X1,X2) = 0 216.98/219.26 [ACTIVE](X) = 2.X + 2 216.98/219.26 [CONS](X1,X2) = 0 216.98/219.26 [ISNAT](X) = 0 216.98/219.26 [ISNATILIST](X) = 0 216.98/219.26 [ISNATLIST](X) = 0 216.98/219.26 [LENGTH](X) = 0 216.98/219.26 [MARK](X) = 2.X + 2 216.98/219.26 [S](X) = 0 216.98/219.26 216.98/219.26 Problem 1.16: 216.98/219.26 216.98/219.26 SCC Processor: 216.98/219.26 -> Pairs: 216.98/219.26 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.26 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.26 MARK(isNatList(X:S)) -> ACTIVE(isNatList(X:S)) 216.98/219.26 -> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 ->Strongly Connected Components: 216.98/219.26 ->->Cycle: 216.98/219.26 ->->-> Pairs: 216.98/219.26 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.26 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.26 ->->-> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 216.98/219.26 Problem 1.16: 216.98/219.26 216.98/219.26 Subterm Processor: 216.98/219.26 -> Pairs: 216.98/219.26 MARK(U42(X:S)) -> MARK(X:S) 216.98/219.26 MARK(U52(X:S)) -> MARK(X:S) 216.98/219.26 -> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 ->Projection: 216.98/219.26 pi(MARK) = 1 216.98/219.26 216.98/219.26 Problem 1.16: 216.98/219.26 216.98/219.26 SCC Processor: 216.98/219.26 -> Pairs: 216.98/219.26 Empty 216.98/219.26 -> Rules: 216.98/219.26 U11(active(X:S)) -> U11(X:S) 216.98/219.26 U11(mark(X:S)) -> U11(X:S) 216.98/219.26 U21(active(X:S)) -> U21(X:S) 216.98/219.26 U21(mark(X:S)) -> U21(X:S) 216.98/219.26 U31(active(X:S)) -> U31(X:S) 216.98/219.26 U31(mark(X:S)) -> U31(X:S) 216.98/219.26 U41(active(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(mark(X1:S),X2:S) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,active(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U41(X1:S,mark(X2:S)) -> U41(X1:S,X2:S) 216.98/219.26 U42(active(X:S)) -> U42(X:S) 216.98/219.26 U42(mark(X:S)) -> U42(X:S) 216.98/219.26 U51(active(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(mark(X1:S),X2:S) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,active(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U51(X1:S,mark(X2:S)) -> U51(X1:S,X2:S) 216.98/219.26 U52(active(X:S)) -> U52(X:S) 216.98/219.26 U52(mark(X:S)) -> U52(X:S) 216.98/219.26 U61(active(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(mark(X1:S),X2:S,X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,active(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,mark(X2:S),X3:S) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,active(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U61(X1:S,X2:S,mark(X3:S)) -> U61(X1:S,X2:S,X3:S) 216.98/219.26 U62(active(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(mark(X1:S),X2:S) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,active(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 U62(X1:S,mark(X2:S)) -> U62(X1:S,X2:S) 216.98/219.26 active(U11(tt)) -> mark(tt) 216.98/219.26 active(U21(tt)) -> mark(tt) 216.98/219.26 active(U31(tt)) -> mark(tt) 216.98/219.26 active(U41(tt,V2:S)) -> mark(U42(isNatIList(V2:S))) 216.98/219.26 active(U42(tt)) -> mark(tt) 216.98/219.26 active(U51(tt,V2:S)) -> mark(U52(isNatList(V2:S))) 216.98/219.26 active(U52(tt)) -> mark(tt) 216.98/219.26 active(U61(tt,L:S,N:S)) -> mark(U62(isNat(N:S),L:S)) 216.98/219.26 active(U62(tt,L:S)) -> mark(s(length(L:S))) 216.98/219.26 active(isNat(length(V1:S))) -> mark(U11(isNatList(V1:S))) 216.98/219.26 active(isNat(s(V1:S))) -> mark(U21(isNat(V1:S))) 216.98/219.26 active(isNat(0)) -> mark(tt) 216.98/219.26 active(isNatIList(cons(V1:S,V2:S))) -> mark(U41(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatIList(zeros)) -> mark(tt) 216.98/219.26 active(isNatIList(V:S)) -> mark(U31(isNatList(V:S))) 216.98/219.26 active(isNatList(cons(V1:S,V2:S))) -> mark(U51(isNat(V1:S),V2:S)) 216.98/219.26 active(isNatList(nil)) -> mark(tt) 216.98/219.26 active(length(cons(N:S,L:S))) -> mark(U61(isNatList(L:S),L:S,N:S)) 216.98/219.26 active(length(nil)) -> mark(0) 216.98/219.26 active(zeros) -> mark(cons(0,zeros)) 216.98/219.26 cons(active(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(mark(X1:S),X2:S) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,active(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 cons(X1:S,mark(X2:S)) -> cons(X1:S,X2:S) 216.98/219.26 isNat(active(X:S)) -> isNat(X:S) 216.98/219.26 isNat(mark(X:S)) -> isNat(X:S) 216.98/219.26 isNatIList(active(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatIList(mark(X:S)) -> isNatIList(X:S) 216.98/219.26 isNatList(active(X:S)) -> isNatList(X:S) 216.98/219.26 isNatList(mark(X:S)) -> isNatList(X:S) 216.98/219.26 length(active(X:S)) -> length(X:S) 216.98/219.26 length(mark(X:S)) -> length(X:S) 216.98/219.26 mark(U11(X:S)) -> active(U11(mark(X:S))) 216.98/219.26 mark(U21(X:S)) -> active(U21(mark(X:S))) 216.98/219.26 mark(U31(X:S)) -> active(U31(mark(X:S))) 216.98/219.26 mark(U41(X1:S,X2:S)) -> active(U41(mark(X1:S),X2:S)) 216.98/219.26 mark(U42(X:S)) -> active(U42(mark(X:S))) 216.98/219.26 mark(U51(X1:S,X2:S)) -> active(U51(mark(X1:S),X2:S)) 216.98/219.26 mark(U52(X:S)) -> active(U52(mark(X:S))) 216.98/219.26 mark(U61(X1:S,X2:S,X3:S)) -> active(U61(mark(X1:S),X2:S,X3:S)) 216.98/219.26 mark(U62(X1:S,X2:S)) -> active(U62(mark(X1:S),X2:S)) 216.98/219.26 mark(cons(X1:S,X2:S)) -> active(cons(mark(X1:S),X2:S)) 216.98/219.26 mark(isNat(X:S)) -> active(isNat(X:S)) 216.98/219.26 mark(isNatIList(X:S)) -> active(isNatIList(X:S)) 216.98/219.26 mark(isNatList(X:S)) -> active(isNatList(X:S)) 216.98/219.26 mark(length(X:S)) -> active(length(mark(X:S))) 216.98/219.26 mark(s(X:S)) -> active(s(mark(X:S))) 216.98/219.26 mark(0) -> active(0) 216.98/219.26 mark(nil) -> active(nil) 216.98/219.26 mark(tt) -> active(tt) 216.98/219.26 mark(zeros) -> active(zeros) 216.98/219.26 s(active(X:S)) -> s(X:S) 216.98/219.26 s(mark(X:S)) -> s(X:S) 216.98/219.26 ->Strongly Connected Components: 216.98/219.26 There is no strongly connected component 216.98/219.26 216.98/219.26 The problem is finite. 216.98/219.26 EOF